ある金額を入力して、それを支払うだけのお札あるいは硬貨の最小の枚数を計算します。
このプログラムは高校生の人にもわかるように,なるべく簡潔にコーディングしてみました。
何かプログラムを作る際に、何らかの参考になれば幸いと思っています。まず、プログラムですが,
kinshu = (10000, 5000, 1000, 500, 100, 50, 10, 5, 1) # お金の種類
while True:
maisu = [] # それぞれのお金の枚数
a = -1
while a < 0: # 金額の入力
a = int(input("金額を入力して下さい。"))
for i in kinshu: # リスト maisu にそれぞれの金種の枚数を追加する
maisu.append(a // i)
a = a % i
maisu.append(a)
print("ーーーーーーーーーーーーーーーーーー")
for i in range(len(kinshu)):
if maisu[i] == 0: # 枚数0のお金は
continue # スキップする
if i <= 2: # お札と硬貨の場合で分けて表示
print(str(kinshu[i]) + "円札が、" + str(maisu[i]) + "枚です。")
else:
print(str(kinshu[i]) + "円玉が、" + str(maisu[i]) + "枚です。")
print("ーーーーーーーーーーーーーーーーーー")
print("お札は、合計", maisu[0] + maisu[1] + maisu[2], "枚です。")
print("硬貨は、合計", maisu[3] + maisu[4] + maisu[5] + maisu[6] + maisu[7] + maisu[8], "枚です。\n" )
●プログラム実行画面●
※プログラムは Control キー + C キーで強制終了します。