一昨日のアルゴリズムの回答です。
考え方としては、
==============================================
コインの枚数を数える配列を つり銭の金額 + 1 のサイズで作る。
そして、その配列を、添字と同じ数で初期化する。 ↓
( これは 1セントだけの場合の答えと同じ )
これに、 10セント を加えた場合、
添字 10 から開始して、 42( お釣り ) になるまで、
枚数[ 10 - 10 ] の値 + 1 を配列に入れていく。
↑ ↑
開始する添字 10セント
この時、 もともと配列に入っている値( コインの枚数 )より
新しく求めた値の方が小さい時だけ、値を更新する
これを コインの種類分、ループを回す。
全ての処理が終わったときの 枚数[ 42( お釣り ) ] の所にある値が、
最小のつり銭の枚数。
==============================================
これが 大体の考え方。
↑の答えは、コインの種類を配列にしているおかげで、
コードも短くなり、単純化している。
( 今回は 1セント、 10セント、 25セント なので
int size[] = { 1, 10, 25 }; という形にする。 )
あと、どのコインをどれだけ使ったか? を表示するために、
もう一つ、表示用の配列を使って値をいれていっている。
----------------------------------------------------------------------
なんなんすかね・・・・
アルゴリズム。
難しぃぃぃいい・・・ (´Д`)
俺はこのコードの2倍近く書いていたので、
『 まだまだだなぁww 』 とおもいましたねー。。
こういうアルゴリズムの解き方としては
< 分割統治法 > と < 動的計画法 >
というのがあるらしいです。
いわゆる トップダウン、 ボトムアップってことらしいですが、
どっちがいいのか俺にはまだよくわかりませんww
頭痛い・・・(´Д`)