我有一个代码,基本上解决了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)
Run Code Online (Sandbox Code Playgroud)
但是我在运行时遇到错误.
return ((a * b)/x)
TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)
我可以知道为什么吗?
Sve*_*ach 14
尝试
def GCD(a, b): #Euclid's algorithim
if (b == 0):
return a
else:
return GCD(b, a % b)
Run Code Online (Sandbox Code Playgroud)
您必须返回递归调用返回的值. RFIND有一个类似的问题.
| 归档时间: |
|
| 查看次数: |
12990 次 |
| 最近记录: |