我有一个代码基本上解决了 Project Euler 中的一个问题,旨在找出前 20 个自然数的 LCM。
def GCD(a, b): #Euclid's algorithim
if (b == 0):
return a
else:
GCD(b, a % b)
def LCM(a, b): #LCM(a,b) = a*b/GCD(a,b)
x = GCD(a, b)
return ((a * b)/x)
def RFIND(a, b):
if (b == 20):
return a
else:
RFIND(LCM(a, b), b + 1)
print RFIND(2, 1)
但是我在运行时遇到错误。
return ((a * b)/x)
TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'
我可以知道为什么吗?
最佳答案
尝试
def GCD(a, b): #Euclid's algorithim
if (b == 0):
return a
else:
return GCD(b, a % b)
您必须返回递归调用返回的值。 RFIND
也有类似的问题。
关于python - 为什么在 Python 中返回 'NoneType'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714764/