擅长:python、mysql、java
<p>代码有几个问题:</p>
<ul>
<li>函数<code>mintha</code>在函数<code>return mintha(x)</code>的return语句中再次被调用,这可能会导致无休止的循环</li>
<li>在<code>else</code>子句的<code>return</code>语句中:<code>return totalPay and mintha (x+10)</code>再次调用函数。如果达到最大深度,这可能会导致递归问题。你知道吗</li>
</ul>
<p>因此,我们更正代码并为<code>x</code>、<code>cb</code>和<code>a</code>分配一些假设值,并尝试一下。在返回值时,我们将它们四舍五入到最接近的整数。你知道吗</p>
<pre><code>x = 0
cb = 25000
a = 50000
unpaid = cb-x # unpaid balance
inc = unpaid*(a/12) # increment
def mintha (x):
'''
x is the minimum payable per month to pay off debt (round to tenth)
'''
totalPay = unpaid + inc # total credit balance, including the
# interests
if (12*x - totalPay) >= 0:
return round(x)
else:
totalPay = unpaid + inc
return round(totalPay)
print(mintha(3000))
#Output:
104191667
</code></pre>
<p>旁白:我不太清楚这道题背后的数学原理。你知道吗</p>