def Factorial(n):
if n==1:
return 1
else:
return n*Factorial(n-1)
print(Factorial(3))
6
上述代码用于计算阶乘 n!=n∗(n−1)∗⋯∗1 n ! = n ∗ ( n − 1 ) ∗ ⋯ ∗ 1
当n不为1时,将执行返回
n*Factorial(n-1)
,而Factorial(n-1)
,又会去执行Factorial这个函数,即调用他本身。当 n=3 n = 3 时, Factorial(3) F a c t o r i a l ( 3 ) 的返回值为
3*Factorial(2)
,而 Factorial(2) F a c t o r i a l ( 2 ) 的返回值为2*Factorial(1)
, Factorial(1)=1 F a c t o r i a l ( 1 ) = 1 ,所以 Factorial(3) F a c t o r i a l ( 3 ) 由递归得到6。