0

所以我试图找到数字 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, [])
4

1 回答 1

0

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

于 2013-08-19T02:37:26.290 回答