2.函数递归

  1. 函数递归
def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

res = factorial(7)
print(res)


                        5 * factorial(4)
                            4 * factorial(3)
                                3 * factorial(2)
                                    2 * factorial(1)
                                        factorial(1) ==>1等于1时候调用完成,开始返回
                                    2*1 ==>2
                                3*2 ==>6
                            4*6 ==>24
                        5*24 ==>120
     

从内层返回

  1. for循环实现递归
def func(num):
    result = 1
    for i in range(num):
        result *= i + 1  #
    return result

res = func(5)
print(res)

3.匿名函数实现阶乘递归

f = lambda i: 1 if i<= 1 else f(i-1) * i
print(f)
posted @ 2021-11-23 22:21  john5的博客  阅读(16)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css