我很难理解为什么我不能将这个简单函数的返回值赋给变量gcd:
def euclidAlgorithm(m, n):
if n == 0:
print "n cannot be zero."
return -1
r = m % n # Remainder
if r == 0:
return n
else:
euclidAlgorithm(n, r)
if __name__ == "__main__":
#Input values
m = 54
n = 36
print "Input : m = ", m, " n = ", n
gcd = euclidAlgorithm(m, n)
if gcd == -1:
print "Function terminated with an error"
else:
print "Output: gcd = ", gcd
Run Code Online (Sandbox Code Playgroud)
gcd当我运行它时,我得到的不是得到18:
Input : m = 119 n = 4
Output: gcd = None
Run Code Online (Sandbox Code Playgroud)
Mor*_*sen 10
你错过了return一句话euclidAlgorithm(m, n).像这样:
def euclidAlgorithm(m, n):
if n == 0:
print "n cannot be zero."
return -1
r = m % n #Remainder
if r == 0:
return n
else:
return euclidAlgorithm(n, r)
Run Code Online (Sandbox Code Playgroud)