<pre><code>def roots4(a,b,c,d):
d = b * b - 4 * a * c
if a != 0 and d == 0:
roots4(a,b,c,d)
x = -b/ (2*a)
if a != 0 and d > 0:
roots4(a,b,c,d)
x1 = (-b + math.sqrt(d)) / 2.0 / a
x2 = (-b - math.sqrt(d)) / 2.0 / a
if a != 0 and d < 0:
roots4(a,b,c,d)
xre = (-b) / (2*a)
xim = (math.sqrt(d))/ (2*a)
print x1 = xre + ixim
strx1 = "x2 = %6.2f + i %6.2f" %(xre, xim)
print strx1
</code></pre>
<p>这是我项目代码的一部分。我要做的是定义<code>roots4(a,b,c,d)</code>。例如,在<code>a != 0 and d == 0</code>的情况下,那么<code>roots4(a,b,c,d)</code>应该通过解方程<code>x = -b/ (2*a)</code>找到<code>x</code>。等等。。。我不知道我做错了什么。有什么建议吗?你知道吗</p>
<p>好吧,看起来你用递归函数做了一个无限循环。现在看来,你永远不会做任何计算除了</p>
<pre><code>d = b * b - 4 * a * c
</code></pre>
<p>一遍又一遍。你知道吗</p>
<p>考虑程序流程。每次你到达</p>
<pre><code>roots4(a,b,c,d)
</code></pre>
<p>你会再次登上榜首的。你知道吗</p>