规格: Ubuntu 13.04,Python 3.3.1
一般背景: Python 初学者;
特定问题的背景:我已经筋疲力尽地试图解决这个问题,而且我知道,除了它对学习 Python 的指导价值之外,这个问题很无聊并且不会以任何方式让这个世界变得更美好:-( 所以如果你能分享一些关于这个令人筋疲力尽的问题的指导,我将更加感激。但如果你对这类问题不感兴趣,真的不想浪费你的时间。
我打算做什么: “计算价值低于 1 美元的基本美国硬币的数量。一便士价值 1 美分,五美分价值 5 美分,一角硬币价值 10 美分,四分之一价值 25 美分. 赚 1 美元需要 100 美分。因此,给定一个小于 1 美元的金额(如果使用浮点数,请转换为本练习的整数),计算达到该金额所需的每种硬币的数量,最大化更大的数量面额硬币。例如,给定 0.76 美元,或 76 美分,正确的输出将是“3 夸特和 1 便士”。诸如“76 便士”和“2 夸特,2 硬币,1 镍和 1 便士”的输出不是可以接受。”
我能想到的:
penny = 1
nickel = 5
dime = 10
quarter = 25
i = input("Please enter an amount no more than 1 dollar(in cents): ")
i = int(i)
if i > 100:
print ("Please enter an amount equal or less than 100. ")
elif i >= quarter:
quarter_n = i % quarter
i = i - quarter * quarter_n
if i >= dime:
dime_n = i % dime
i = i - dime * dime_n
if i >= nickel:
nickel_n = i % nickel
i = i - nickel * nickel_n
if i >= penny:
penny_n = i % penny
print (quarter_n,"quarters,",dime_n,"dimes",nickel_n,"nickels",penny_n,"pennies")
else:
if i >= penny:
penny_n = i % penny
print (quarter_n,"quarters,",dime_n,"dimes",penny_n,"pennies")
else:
if i >= nickel:
nickel_n = i % nickel
i = i - nickel * nickel_n
if i >= penny:
penny_n = i % penny
print (quarter_n,"quarters,",nickel_n,"nickels",penny_n,"pennies")
else:
if i >= penny:
penny_n = i % penny
print (quarter_n,"quarters,",penny_n,"pennies")
else:
if i >= dime:
dime_n = i % dime
i = i - dime * dime_n
if i >= nickel:
nickel_n = i % nickel
i = i - nickel * nickel_n
if i >= penny:
penny_n = i % penny
print (dime_n,"dimes",nickel_n,"nickels",penny_n,"pennies")
else:
if i >= penny:
penny_n = i % penny
print (dime_n,"dimes",penny_n,"pennies")
else:
if i >= nickel:
nickel_n = i % nickel
i = i - nickel * nickel_n
if i >= penny:
penny_n = i % penny
print (nickel_n,"nickels",penny_n,"pennies")
else:
if i >= penny:
penny_n = i % penny
print (penny_n,"pennies")
这个解决方案虽然是我能想到的最好的解决方案,但在输入实际输入数字时无法按预期工作。我无法弄清楚为什么。此外,我知道即使从代码的绝对大小来看也有问题。我搜索了类似的问题,但我得到的最接近的是一个处理我无法理解的非常困难的数学的问题。
我的问题:我知道我不能要求一个完整的解决方案,因为这取决于我自己想办法。我会很感激 a) 正确思路上的一般指针 b) 对我当前的代码/思路的批评,以便我能够改进它。
感谢您抽出宝贵的时间,即使只是阅读本文!