python---递归函数

1、递归函数:函数调用填本身

#n!
def digui(n):
    if n==0:
        return 1
    return n * digui(n-1)

m = digui(3)
print(m)

控制台输出:6

2、举个例子--斐波那契函数

def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)

n = fib(10)
print(n)

控制台输出:55

3、详细说明

  a:把问题分成更小子问题,此处将 abcdef,分为 a 和 bcdef

  b:有一个函数可以应用在所有的子问题上 str[1:]+str[0]

  c:把子问题的解,拼成最终问题的解,即递归的部分。return fanzhuan(str[1:])+str[0]

  d:子问题到最低层时该返回什么值,即什么时候停止递归。下面的 if 条件

str1 = 'abcdef'
def fanzhuan(str):
    if len(str) == 1:
        return str
    return fanzhuan(str[1:])+str[0]

str2 = fanzhuan(str1)
print(str2)

控制台输出:fedcba

4、本文参考博文:https://blog.csdn.net/weixin_43405546/article/details/83045725

原文地址:https://www.cnblogs.com/hzgq/p/11764500.html