的問題是價值找到你需要的時候,要到一家信用卡公司的固定金額 -關於不改變N
- BAL =量,你需要在第0個月 年初支付
- N =但是要支付給信用卡公司每月固定金額,使得在今年年底,你將支付的總金額信用卡公司
bal = int(raw_input("Enter balance"))
rate = int(raw_input("enter rate"))
lower_b = bal/12
upper_b = (bal + ((rate*bal)/1200))/12
N= (lower_b+upper_b)/2
def Credit(bal,rate,N):
global upper_b
global lower_b
i=1
k=bal
while (i<13):
print(N)
paid = N
bal = bal - paid
print("Balance remains to be paid is %s" %(round(bal,2)))
Interest = rate * bal /1200
print("The interest added on is %s" %(round(Interest,2)))
bal=bal+Interest
print ("The amount that needs to be payed is %s " %(round(bal,2)))
i=i+1
if bal==0:
return N
elif 50 < bal < 2000 :
lower_b = N
upper_b = upper_b
N = (upper_b +lower_b)/2
return Credit(k,rate,N)
elif -2000<bal< -50:
upper_b = N
lower_b = lower_b
N = (lower_b +upper_b)/2
return Credit(k,rate,N)
elif -50 < bal < 50:
return N
else:
return bal
result=Credit(bal,rate,N)
print(result)
我的代碼永遠不會終止。問題是代碼中定義的N值沒有變化。它仍然是固定的N = upper_b + lower_b)/ 2
這不是一個很好的使用情況遞歸 –
都會響起@PadraicCunningham評論,我不會用遞歸,而不是使用全局變量。我認爲這是你被絆倒的地方。從用戶處獲取輸入,並將其發送給某個功能。你可能會得到一個包裝函數,但有時候比使用全局變量遞歸更容易。 –