スレ立てるまでもない質問はここで 105匹目

このエントリーをはてなブックマークに追加
881デフォルトの名無しさん
アルゴリズムのヒントを教えてもらえませんか。Cの実装は自分でやります。
ネタ元は↓の課題2です。
ttp://cdn.cs50.net/2009/fall/psets/1/hacker1.pdf

レジに入ってる小銭の枚数(25セント、10セント、5セント、1セント)と、
お釣りの額を入力して、釣り銭の枚数が最少となる枚数を表示する。
釣り銭切れも考慮する。支払い不能な時は0を返す。

例えば、硬貨がそれぞれ10枚、10枚、0枚、10枚あって、41セントのお釣りの時、
枚数が最少となるのは10セント×4枚+1セントとなって5枚が正解。
単純なgreedy algorithmだと最初に25セントを使うので、
残り16セントを支払うのに10セント+1セント×6枚となって計8枚になってしまう。