JOI雑貨店問題を解いてみた
ちょっと気になったので
この問題↓ を解いてみた
1 2 |
<blockquote> <p>太郎君はよくJOI雑貨店で買い物をする。JOI雑貨店には500円、100円、50円、10円、5円、1円が十分な数だけあり、いつも最も枚数が少なくなるようなおつりの支払い方をする。レジで1000円札を1枚出した時、硬貨の枚数を求めるプログラムを作成せよ。<br /> |
http://matome.naver.jp/odai/2137768077518337401
1
|
</blockquote> |
public static void main(String[] args) { System.out.println(getCoinCount(620)); }
1 2 3 4 5 6 7 8 9 10 11 12 <span class="synType">public</span> <span class="synType">static</span> <span class="synType">final</span> <span class="synType">int</span>[] COINS = {<span class="synConstant">500</span>, <span class="synConstant">100</span>, <span class="synConstant">50</span>, <span class="synConstant">10</span>, <span class="synConstant">5</span>, <span class="synConstant">1</span>}; <span class="synComment">//お釣りを入力すると硬貨の数をカウントする</span> <span class="synType">public</span> <span class="synType">static</span> <span class="synType">int</span> getCoinCount(<span class="synType">int</span> yen){ <span class="synStatement">for</span>(<span class="synType">int</span> coin : COINS){ <span class="synStatement">if</span>( yen >= coin ){ System.out.println(yen + <span class="synConstant">" ["</span> + coin + <span class="synConstant">"]"</span>); <span class="synStatement">return</span> getCoinCount(yen-coin) + <span class="synConstant">1</span>; } } <span class="synStatement">return</span> <span class="synConstant">0</span>; }
これ、どっかで見た問題だな
SICPだったけな。。。
moremagic
2013-10-14