【Python小练】求斐波那契数列第n个数

题目

        输出斐波那契数列第n个数。

分析

        首先我们要知道,斐波那契数列,这个数列从第三位开始等于前两个数的和,要知道数列第n个数(n>2),就要知道其前两相的值,着就需要用到递归了。来看一下吧

Python代码

def fibibacci(n):
    if n == 0:          # 递归结束条件1
        return 0        
    elif n == 1:        # 递归结束条件2
        return 1
    elif n >= 2:
        return fibibacci(n-1) + fibibacci(n-2)    # 递归


a = int(input("想知道斐波那契数列第几个数:"))
print(fibibacci(a))

总结

        递归是指在函数的定义中使用函数自身的方法。为什么能达到递归效果?这跟我们计算机执行程序有关了,计算机会将我们要执行的程序入栈,将fibibacci(n)入栈,但是遇到递归,他发现要执行fibibacci(n)要知道fibibacci(n-1)和fibibacci(n-2),要执行fibibacci(n-1)和fibibacci(n-2)要知道fibibacci(n-3)fibibacci(n-4),直到fibibacci(n)中n变为0和1时就明确了,fibibacci(0),fibibacci(1)可以直接执行出栈得到结果,让然后又倒回去挨个出栈取结果,最终得到fibibacci(n)。(若解释有错误或误导的地方,请各位大佬批评指正)

 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值