【发布时间】:2015-06-04 11:32:14
【问题描述】:
我应该编写一个简单的程序来执行以下操作:
接受以下输入:
- 信用卡上的未结余额
- 年利率小数
我应该打印每月的固定付款以及偿还债务所需的月数(最多 12 个月,可能更少)。我还应该在最后打印余额(可能是负数)。
我们应该假设利息是根据月初的余额按月计算的(在支付该月的付款之前)。每月付款必须是 10 美元的倍数,并且所有月份都必须相同。由于这种方案,余额可能会变为负数。
所以,月利率 =
年利率 / 12.0
每月更新余额 =
旧余额 * (1 + 月利率) - 每月最低还款额
现在,分配这个问题的人提供了一个测试用例,说明什么是正确的程序:
>>>
Enter the outstanding balance: 1200
Enter annual interest rate: 0.18
RESULT
Monthly payment to pay off debt in 1 year: 120
Number of months needed: 11
Balance: -10.05
>>>
这是我编写的程序(我将输入固定为与上面相同,以便查看程序是否正常工作:
## ob = float (raw_input ("Enter the outstanding balance:"))
##accir = float(raw_input("Enter annual interest rate:"))
ob = float (1200)
mp = float (0)
n = float (0)
while rb >= 0:
rb = ob
mp += 10
n += 1
rb = ( rb*(1 + (accir/12.0)**n) - n*mp)
print "Result:"
print "Monthly payment to pay off debt in one year:" , mp
print "Number of months needed:" , n
print "Balance:" , rb
看起来不错,但是当我运行它时,我得到了这个:
>>>
Result:
Monthly payment to pay off debt in one year: 110.0
Number of months needed: 11.0
Balance: - 10.0
>>>
与我之前写的正确输出相比,这略有不同。
抱歉写的乱七八糟,我不知道如何在这个论坛上编写代码。另外,请注意,我编写的问题和程序并没有完全按照我的方式编写,但或多或少是相同的。
可能是什么问题?谢谢。
【问题讨论】:
-
不回答这个问题,但我不确定你能不能说
monthly_rate = annual_rate / 12,因为复利。例如。如果年利率是 12%,我的债务是 100 美元,那么我预计今年的利息是 12 美元。但是如果您每月在余额中增加 1%(100 * 1.01^12),您最终将获得 12.68 美元的利息。 -
@TomDalton 实际上月费是我写的。问题集的作者提供了这些信息。
-
@user224530 我回滚到上一个版本。如果您希望删除此答案,请将其标记并告知版主。
-
@Mailerdaimon 你在说什么?
-
@mistermarko 看看这个问题的修订版。有一个编辑用废话代替了整个问题。我将问题回滚到以前的版本。
标签: python