Python - 斐波那契数列

题目

  • 编写函数,实现斐波那契数列的计算,并计算fibonacci(n),n ≥ 2

概念

  • OK,我们先了解一下什么是斐波那契数列。
  • 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

思路

  • 观察了一下概念,数列直接采用递归更简便一些,那就开整

代码

def fibonaaci(n):
    if n < 1 :                                                                  #数列数量小于1
        return 0                                                                #返回0
    if n == 1 or n == 2 :                                                       #数量为1或者2
        return 1                                                                #返回1
    return fibonaaci(n-1) + fibonaaci(n-2)                                      #递归计算数列的第n个数

if __name__ == "__main__":
    while True:                                                                 #循环直到用户输入整数
        try:
            num_f = int(input("Please enter the number of Fibonacci sequence:"))#提示用户输入
        except ValueError as err:                                               #捕捉到异常
            print("Input Error, the number should greater than 0!")             #提示用户输入错误
        else:                                                                   #输入是整数
            if num_f > 0:                                                       #数列数量是否大于0
                print("Fibonacci sequence: ",end="")                            #打印数列开头信息
                for fib in range(1,num_f + 1):                                  #遍历数列数量
                    print(fibonaaci(fib),end=" ")                               #打印数列的第i个数的值
                break                                                           #退出循环
            else:                                                               #数列数量小于等于0
                print("Input Error, the number should greater than 0!")         #打印提示信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值