CS50 pset6 // cash.py // 未显示所需的正确硬币数量
CS50 pset6 // cash.py // Not Showing The Proper amount of coins needed
我一直在尝试解决此问题,但在任务中,对于 pset6,它表示您需要使用某些值测试您编写的代码,它对其中一些有效,但对其余部分无效我不知道为什么。
所以下图是我需要尝试的值,我编写的代码适用于前 3 个输入,但在 0.15 之后,1.60、23 和 4.2 等值不起作用我不确定为什么
from cs50 import get_float
coin_count =0
change = get_float("Enter Change Amount: ")
total_amount = round(change * 100);
coin_amounts = [25,10,5,1]
while change<=0:
change = get_float("Enter Change Amount: ")
while total_amount > 0:
for i in coin_amounts:
if total_amount >=i:
total_amount -= i
coin_count+=1
print(str(coin_count) + " coins");
完成逻辑。
假设您从 1.6 (160) 开始。
160 > 25 所以去掉 25
135 > 10 所以删除 10
125 > 5 所以去掉 5
120 > 1 所以删除 1
119 > 25 所以去掉 25
看到问题了吗?
当你得到更大的数字时,先删除 10,然后删除 5,然后删除 25,然后再删除 10,这意味着你离开了 rails - 这些 [10 10 5] 可能是单个 25。
您需要尽可能多地删除 25,然后再删除所有 10,然后删除所有 5,剩下的必须是 1。
我一直在尝试解决此问题,但在任务中,对于 pset6,它表示您需要使用某些值测试您编写的代码,它对其中一些有效,但对其余部分无效我不知道为什么。
所以下图是我需要尝试的值,我编写的代码适用于前 3 个输入,但在 0.15 之后,1.60、23 和 4.2 等值不起作用我不确定为什么
from cs50 import get_float
coin_count =0
change = get_float("Enter Change Amount: ")
total_amount = round(change * 100);
coin_amounts = [25,10,5,1]
while change<=0:
change = get_float("Enter Change Amount: ")
while total_amount > 0:
for i in coin_amounts:
if total_amount >=i:
total_amount -= i
coin_count+=1
print(str(coin_count) + " coins");
完成逻辑。
假设您从 1.6 (160) 开始。
160 > 25 所以去掉 25
135 > 10 所以删除 10
125 > 5 所以去掉 5
120 > 1 所以删除 1
119 > 25 所以去掉 25
看到问题了吗?
当你得到更大的数字时,先删除 10,然后删除 5,然后删除 25,然后再删除 10,这意味着你离开了 rails - 这些 [10 10 5] 可能是单个 25。 您需要尽可能多地删除 25,然后再删除所有 10,然后删除所有 5,剩下的必须是 1。