python for文
解決したいこと
数字を入力した際、(今回の場合は314)
答えとしては11になるはずなのですが、8と返ってきます。
コードの add = min( add,coins[i])以下の記述を書き換えれば解決するのかと思っておりますが、どこを変えれば良いのかもわかっておりませんので教えて頂きたいです。
問題
50 円玉, 10円玉, 5 円玉, 1円玉がそれぞれ A0,A1,A2,A3枚あります。
これらを用いて X 円を支払うとき、最小で何枚の硬貨が必要ですか。
ただし、支払い方は少なくとも 1 つ存在することが保証されています。
該当するソースコード
X = int(input())
A = list(map(int, input().split()))
# コインの金額
coins = [50, 10, 5, 1]
res = 0
for i in range(4):
add = X // coins[i] #addにはXをそれぞれリストで割った値が入っている。6,31,62,314
# print(add)
# 枚数制限を考慮してコインの使用枚数を求める
add = min( add,coins[i])
# print(add) 6,10,5,1
res += add
# print(res) resには上記の6,10,5,1の足した数が入っている。
# 残り金額を求める
X -= coins[i] * add
# 出力
print(res)
自分で試したこと
print文を使って変数の値を調べたのですが、解決に至らずです。
0