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

根据编写递归三步走

Python---函数递归---练习:使用递归求N的阶乘(如n=100)(本文以递归算法 解法为主)_第1张图片

第一步:明确这个函数要做什么以及定义函数以及调用方式


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))

Python---函数递归---练习:使用递归求N的阶乘(如n=100)(本文以递归算法 解法为主)_第2张图片


你可能感兴趣的:(python,算法,开发语言,pycharm)