我已经使用迭代编写了EdX课程作业问题的解决方案。
该代码采用信用卡余额和年利率计算12个月内支付余额(加上任何利息)所需的最低月付款。
这是我的迭代代码:
def minimum_payment_iter(ann_interest, balance):
month_int = ann_interest/12
remaining = balance
payment = 10
months = 1
while remaining > 0:
months = 1
payment += 10
remaining = balance
while months < 13:
remaining -= payment
remaining += remaining*month_int
months += 1
return payment
我已经尝试过递归版本,但我已经超过了最大递归深度:
def minimum_payment_recur(ann_interest, balance, payment = 10):
month_int = ann_interest/12
remaining = balance
month = 1
if remaining <= 0:
return payment
else:
remaining -= payment
remaining += remaining*month_int
month += 1
return minimum_payment_recur(ann_interest, balance, payment + 10)
答案 0 :(得分:0)
我刚刚做了这个。您需要在递归中添加一个计数器,这是您在循环中执行的操作。
所以,比如:
def function(a,b,counter=12):
"""
Docstring goes here
"""
if counter == 1:
return a+b
else:
return function(a,b,counter-1)
我发现很难在edX的这些在线课程中获得真正的帮助,因为课程对你发布的内容非常严格,我从来没有得到与“讨论”之外的个人交谈的提议。如果我能从edX课程获得一对一的帮助,我会支付额外费用,老实说。
无论如何,希望能帮到你。