任何人都可以帮我解释一下这段代码的工作原理吗?我试图理解递归的工作原理以及如何编写它。这里是新生,谢谢。
def gcdRecur(a, b):
'''
a, b: positive integers
returns: a positive integer, the greatest common divisor of a & b.
'''
if b == 0:
return a
else:
return gcdRecur(b,a % b)
obj = gcdRecur(9,12)
print (obj)
答案 0 :(得分:0)
这是Euclid's algorithm的实现。
简单地说,%
是模运算符,它返回第一个操作数除以第二个的余数,因此a % b
将9除以12,其为0,其余为9。递归交替参数,因此下一个操作将是12 % 9 == 3
,然后是9 % 3 == 0
,因为3除以9而没有余数。 3也是除以12,因为它是自身和9的总和,它除了没有余数的数字。
答案 1 :(得分:0)