【发布时间】:2012-10-22 12:07:18
【问题描述】:
我正在做一些功课,我对此感到头疼..要么我很愚蠢,要么我太累了,无法做到这一点..我设法得到正确的输出并确定了优先级,但是当我输入一个浮点数时,它只会发疯。。 总体目标是能够输入一个可以工作的浮点值。我似乎无法理解数学解决方案
price = input("Enter Price ")
cash = input("Enter Cash ")
coins = [100, 50, 20, 10, 5, 1, 0.5]
change = cash-price
i = 0
while i<len(coins):
print int(change/coins[i]),str(" X "),coins[0+i]
if change>0:
change = change-((change/coins[i])*coins[i])
else:
change = max(change,0)
i=i+1
谢谢!
【问题讨论】:
-
使用
for coin in coins:而不是while... -
为什么是
change = max(change, 0)?该分支将始终导致change=0,那么为什么还要进行额外的计算呢? -
另外,使用
for coin in coins:,而不是while i<len(coins): ... i=i+1。 -
此外,
change不应小于零。这是你应该早点处理的问题。