Python---函数递归---练习:使用递归求N的阶乘(如n=100)(本文以递归算法 解法为主)
相关链接:Python---函数递归---练习:斐波那契数列(本文以递归算法为主)-CSDN博客
Python---if选择判断结构、嵌套结构(if elif else)_python多重if嵌套-CSDN博客
案例:使用递归求N的阶乘(如n=100)
思考:
首先明确,阶乘是什么?--------不会就百度搜下,或者CSDN搜下,找答案。
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,
如:n!=1×2×3×...×(n-1)×n
转换数值---例如:
1! = 1
2! = 1x2 = 2
3! = 1x2x3 = 6
4! = 1x2x3x4 = 24
...
n!=1×2×3×...×(n-1)×n
根据编写递归三步走
第一步:明确这个函数要做什么以及定义函数以及调用方式
def f(n): # 编写递归条件 print(f(100))
第二步:寻找递归的结束条件
def f(n): # 编写递归结束条件 if n <= 2: return n # ...递归等式 print(f(100))
第三步:编写递归等价公式(自己要调用自己)
等价公式 = 找规律
1! = f(1) = 1
2! = f(2) = 2
3! = f(2)x3 = 6
4! = f(3)x4 = 24
...
n!= f(n-1) * n
def f(n): # 编写递归结束条件-----if如果 n是1,那么< 2,返回1,n是2,那么= 2,返回2, if n <= 2: return n # ...递归等式-------公式,规律写出来 return f(n-1) * n print(f(100))