a=666
b=1414
def gcd(x,y):
x,y=y,x%y
while(x%y>0):
gcd(x,y)
else:
return y
print(gcd(666,1414))
这是一个求最大公约数的python程序,为什么在函数的循环体调用函数无法运行。想不出来
在函数的循环体内调用函数是可行的,但你的程序中存在一个问题。在while循环内部调用函数时,你需要使用return语句将结果返回,而不是再次调用函数。以下是已更正的程序:
a=666
b=1414
def gcd(x,y):
x,y=y,x%y
while(x%y>0):
y = gcd(x,y)
return y
print(gcd(666,1414))
第6行改为return gcd(y,x%y)
while改为if,不然不能与下面的else 配对
要递归就递归
要循环就循环
不要混用