python递归查找GCD m

2024-09-27 21:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两段python代码查找两个正整数的GCD。你知道吗

以下是正确的答案:

def gcdRecur(a, b):

    if b == 0:
        return a
    return gcdRecur(b, a%b)

这是一个错误:

def gcdRecur(a, b):

    a = max(a, b)
    b = min(a, b)
    if b == 0:
        return a
    return gcdRecur(b, a%b)

很容易看出这两段代码之间的区别。我知道没有必要再加上

 a = max(a, b)
 b = min(a, b)

在控制流之前。我在后面的代码中找不到任何逻辑错误,但它打印出了错误的结果。你知道吗

------use former code find GCD of 182 ans 224------
print out 14
------use former code find GCD of 182 ans 224------
print out 224(wrong answer)

所以我猜这可能与python中的递归原理有关,我对此一无所知。谁能帮帮我,告诉我发生了什么事吗

谢谢你。你知道吗


Tags: of代码returnifusedef错误code

热门问题