Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我编写了一个简单的代码来查找两个数字的GCD,并尝试了3个值(3,12),(35,24),(24,12)_Python - Fatal编程技术网

Python 我编写了一个简单的代码来查找两个数字的GCD,并尝试了3个值(3,12),(35,24),(24,12)

Python 我编写了一个简单的代码来查找两个数字的GCD,并尝试了3个值(3,12),(35,24),(24,12),python,Python,下面的代码对值(35,24)返回None。有人能建议为什么它显示None而不是1,而对其他值正常工作吗 我已经尝试了以下解决方案 def gcd(a, b): if a < b: if b % a == 0: return a else: gcd(a, b % a) elif a > b: if a % b == 0: return b

下面的代码对值(35,24)返回None。有人能建议为什么它显示None而不是1,而对其他值正常工作吗

我已经尝试了以下解决方案

def gcd(a, b):
    if a < b:
        if b % a == 0:
            return a
        else:
            gcd(a, b % a)
    elif a > b:
        if a % b == 0:
            return b
        else:
            gcd(b, a % b)

print gcd(35, 24)
def gcd(a,b): 如果ab: 如果a%b==0: 返回b 其他: gcd(b,a%b) 打印gcd(35,24)
我希望输出为1,但实际输出为None

您在递归调用中缺少了
return
。比如说,

gcd(a, b % a)
应该是:

return gcd(a, b % a)
您还有一个问题,即当
a==b
时不返回任何内容。因为当
a==b
a
a>b
都不是真的。你能解决这个问题吗