超出最大递归误差深度,python(2.7.5)

时间:2013-08-19 02:22:08

标签: python-2.7

所以我试图找到数字1 - 20中最不常见的倍数。出于某种原因,我的代码超出了最大递归深度,但我不明白为什么。我只是没有看到它在while循环中陷入困境。另外,我知道它还没有打印到控制台。

def checking(i,q,w,e):
q = q * w
while i < 20:
    if q % i != 0:
        w += 1.0
        checking(1.0, 20.0, w, [])
    if q % i == 0 and i < 19:
        i += 1
    if q % i == 0 and i == 19:
        e.append(q)
        break
checking(1.0, 20.0, 1.0, [])

1 个答案:

答案 0 :(得分:0)

你永远不会改变q。所以当q%i不等于0时,你永远不会增加i,你将永远陷入循环。我认为你应该在这里重新评估你的逻辑。