動的計画法の#を解決外貨両替問題
V1、V2の#通貨硬貨の金種がnあり、V3 ... VN、V1 = 1、両替の合計値とお金の使用は、どのようにコインの最小数を見つけるために、ここで、即ち、X1、X2、X3 ... XN最小合計
#入力:公称様々な通貨V1の値は、V2、V3 ... VN、お金の合計値を償還します
#出力:為替の最低額を取得
1枚の #の額面は、マネーシステムを変更し 2 V = [1,2,5,10,50 ] 。3 #金額が交換お金を変更する 。4マネー= 253
1つの #0の各々に対する貨幣の初期量 2 X = [0] * lenは(V)を 3 #為替テーブルの対応する数= Q [マネー+ 1] [LEN(V)+ +1]確立する 。4 Q = [([0を] *(LEN(V)+ +1))のための I における範囲(0、+マネー。1 )]
1つの #Qのテーブル初期化:最初の列の最初の行は0に設定されている 2 用 Iを中範囲(0、+マネー1 ) 。3 Q [I] [0] = 0 4。 ための I における範囲(0、LEN(V)+ +1 ) 。5 Q [0] [I] = 0
1つの #シート処理 2 用 I における範囲(1、金+ 1 ) 。3 用 J における範囲(1、LEN(V)+ +1 ): 4 IF V [J-1] == I: #1 金種= I 5 Q [I] [J] = 1。 6。 ELIFの V [J-1]> I: #1 金種> I 。7 Q [I] [J] = Q [I]、[J-1 ] 8。 他: #1 金種<私 9 Q [I] [J] = Q [IV [-J 1] [J] +。1つの #のIV [j]は、iの公称値であります
関数の呼び出し:
。1つの 印刷(Q); 印刷(' \ N- ' ) 2 印刷は、(' 交換は通貨の最小数を得た:'、Q [マネー] [LEN(V)])
結果:
通貨換算のための少なくともた数:7