ちょっと気になったので
この問題↓ を解いてみた

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 &gt;= coin ){
            System.out.println(yen  + <span class="synConstant">&quot; [&quot;</span> + coin + <span class="synConstant">&quot;]&quot;</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だったけな。。。