2013-02-25 5 views
1

코드는 balance = 3926을 제외하고 올바른 결과를 제공합니다. 최소 지불액 : 370인데 비해 360 일 것입니다. 프로그램은 연간 이자율에 대한 최소 월간 지불액을 인쇄해야합니다. 초기 잔액이 주어지면 코드는 연말에 잔액을 계산해야합니다. 매월 10 달러를 지불하면서 초기 잔액을 시험하고 있습니다. 연말에 잔액이 남아있는 경우 잔액을 초기 잔액으로 재설정하고 10 달러를 인상하는 코드를 작성한 다음 (동일한 코드를 사용하여!) 잔액을 계산하기 위해 다시 시도하십시오! 이 새로운 지불 값이 문제는 당신이 다시 반복하지 않을 것을 관심 루프 (당신이 while(month <= 12)으로 가지고있는) 새로운 지불을하려고 할 때마다 통해 충분히오른쪽 출력이 올바르지 않습니다 ... 논리가 올바르지 않습니다.

annualInterestRate = 0.2 

balance = 3926 

monthlyinterestrate = annualInterestRate/12.0 

remainingBalance = balance 

month = 1 
total = 0 

payment = 10 

def CheckMinimumPayment(payment,balance): 

    "Checking if payment is in correct balance" 
    while(payment*12 < balance): 

     payment += 10 
    return payment 

payment = CheckMinimumPayment(payment,balance) 

while(month <= 12): 
    remainingBalance = remainingBalance - payment + (annualInterestRate/12.0) * (remainingBalance - payment) 
    month += 1 
    total += payment 


payment = CheckMinimumPayment(payment,total+remainingBalance) 

print("Lowest Payment: " + str(payment)) 
+1

* 왜 *가 360이 맞지 않습니까? 계산은 어떻게 되나요? 당신은 우리를 위해 그것을 해결할 수 있습니까? –

+1

게시 할 때 코드 블록 ("{}"버튼)에 코드를 입력하십시오. 나는 너를 대신해 그것을 고칠 두 번째 인물이다. – n00dle

+0

프로그램에 따라 대답은 370이지만 360이어야합니다. – user1437027

답변

0

큰 경우 올해는 볼 수 있습니다. 함수에 루프를 작성하고 새 지불을 시도 할 때마다 호출하십시오. 월 지급액이 많을수록 매달이자가 적어지기 때문에 총 미납금은 지급액에 따라 다릅니다. 여기에 제가 사용했던 것들이 있습니다 :

annualInterestRate = 0.2 
init_balance = 3926 

monthlyInterestRate = annualInterestRate/12.0 
init_payment = 10 

def owedBalance(payment,balance): 
    """ Calculate total owed balance after one year 
     given an initial balance and montly payment""" 

    for month in range(12): 
     balance = (balance - payment) * (monthlyInterestRate + 1) 

    return payment*12 + balance 

def CheckMinimumPayment(payment,balance): 
    "Checking if payment is in correct balance" 

    while (payment*12 < owedBalance(payment, balance)): 
     payment += 10 

    return payment 

min_payment = CheckMinimumPayment(init_payment,init_balance) 

print("Lowest Payment: {}".format(min_payment)) 
관련 문제