我是初学者编程课程 . 我们必须做一个改变制造者计划的练习 . 输入必须在0-99之间,并且当输入在四者之间分配时,必须以四分之一,硬币,镍币和便士表示 . 我编写了一个涉及循环和whiles的代码,但他想要更简单的代码和更小的代码 . 他给了我这个帮助我的方法:
c=int(input('Please enter an amount between 0-99:'))
print(c//25)
print(c%25)
他告诉我们,这基本上就是我们所需要的,只需要添加硬币,镍币和硬币 . 我用硬币,镍币和硬币尝试多种方式,但我无法正确输出 . 每当我输入'99'时,我得到3分为四分之一,2分为硬币,1分为镍,0分为便士 . 如果有人能够帮助我,那将是美好的!
3 回答
我现在肯定你想要实现的目标 . 使用模数运算符,您可以轻松找出多少个季度,硬币,镍币和便士 .
我们只说你输入99 .
这会打印出来:
实际的诀窍是知道因为每枚硬币的 Value 至少是下一个较小面额的两倍,you can use a greedy algorithm . 其余的只是实现细节 .
在这里's a slightly DRY' er(但可能,呃,更令人困惑)实现 . 所有我真正做的不同的是使用列表来存储我的结果,并利用tuple unpacking和divmod . 此外,这在将来更容易扩展:我需要做的就是支持1美元账单是将
coins
更改为[100, 25, 10, 5, 1]
. 等等 .给你:
我希望这有帮助?像这样的东西,但不要只是复制它 . 每次除以25 10 5你必须丢失那部分,因为它已经被计算在内 . 最后打印出你想要的东西:) .