Python-递归复习-斐波那契-阶乘-52

Posted LXL_1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-递归复习-斐波那契-阶乘-52相关的知识,希望对你有一定的参考价值。

# 超过最大递归限制的报错
# 只要写递归函数,必须要有结束条件。

# 返回值
# 不要只看到return就认为已经返回了。要看返回操作是在递归到第几层的时候发生的,然后返回给了谁。
# 如果不是返回给最外层函数,调用者就接收不到。
# 需要再分析,看如何把结果返回回来。

# 循环 大部分递归都可以用for循环实现
# 递归

# 斐波那契  # 问第n个斐波那契数是多少

# fib(6) = fib(5) + fib(4)
# fib(5) = fib(4)+fib(3)
# fib(4) = fib(3)+fib(2)
# fib(3) = fib(2)+fib(1)
# fib(2) = 1
# fib(1) = 1

#递归调用两个本身函数-执行速度慢
def fib(n):
    if n == 1 or n==2:
        return 1
    return fib(n-1) + fib(n-2)

print(fib(50))

#递归调用一个本身函数-执行速度快
def fib(n,a=1,b=1):
    if n==1 : return a
    return fib(n-1,b,a+b)

print(fib(50))

 




以上是关于Python-递归复习-斐波那契-阶乘-52的主要内容,如果未能解决你的问题,请参考以下文章

Python基础——递归及其经典例题(阶乘斐波那契数列汉诺塔)

递归:阶乘斐波那契数列

阶乘斐波那契数列打印三角形(*)递归,冒泡排序

斐波那契数列和递归实现阶乘

js递归阶乘斐波那契规律

C语言 递归算法练习(阶乘,斐波那契..)