ある金額を入力して、それを支払うだけのお札あるいは硬貨の最小の枚数を計算します。
このプログラムは高校生の人にもわかるように,なるべく簡潔にコーディングしてみました。
何かプログラムを作る際に、何らかの参考になれば幸いと思っています。まず、プログラムですが,
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 キーで強制終了します。