2012-11-01 51 views
0

我正在做一些家庭作業,並且即時打破我的頭繞着這個..要麼是愚蠢的,要麼我只是太累了,不能做到這一點..我設法讓輸出權和優先順序,但是當我輸入一個浮點數,它只會發瘋.. 的總體目標是希望能夠進入一個浮點值,將工作..我只是似乎無法讓我的頭圍繞一個數學解Python - 類似收據的輸出

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 

謝謝!

+0

使用'硬幣硬幣:'取代'而...' – zenpoy

+0

爲什麼'變化= MAX(其他城市,0)'?那個分支總是會導致'change = 0',那爲什麼還要花費額外的計算呢? –

+0

此外,使用'在硬幣中的硬幣:',而不是'當我

回答

0

我懶得去檢查一下數學,但是看起來你忘記了在從變化中減去浮點數後,所以一個局部硬幣被當作全部當前量處理,並且所有東西都歸零了。我添加了一個int

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-(int(change/coins[i])*coins[i]) 
    else: 
     change = max(change,0) 
    i=i+1 
+0

謝謝!它確實解決了它;)! – Spectalecy