使用python实现斐波那契数列的四种方法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

第一种方法实现(顺序输出)


# 获取用户输入数据
num = int(input("你需要几项?"))

# 第一和第二项
n1 = 1
n2 = 1
count = 2

# 判断输入的值是否合法
if num <= 0:
    print("请输入一个正整数。")
elif num == 1:
    print("斐波那契数列:")
    print(n1)
else:
    print("斐波那契数列:")
    print(n1, ",", n2, end=" , ")
    while count < num:
        nth = n1 + n2
        print(nth, end=" , ")
        # 更新值
        n1 = n2
        n2 = nth
        count += 1

结果如下:
在这里插入图片描述

第二种方法实现(利用python的组包拆包原理)

# def fib(number):
#     n, a, b = 0, 1, 2
#     while n < number:
#         a, b = b, a + b
#         n = n + 1
#     print(len(str(b)))
#
# fib(20000)

# Python特有,组包拆包原理

def fib(number):
    a = 1
    b = 1
    while a <= number:	# 当斐波那契数小于等于number时结束循环
        print(a, end=" ", flush=True)
        a, b = b, a + b  # python不借助变量交换两数的值


fib(1000)  # 求n之内的斐波那契数列

结果如下:
在这里插入图片描述

第三种方法实现(利用递归函数实现)

def fib(x):
    if x <= 2:
        return 1
    else:
        return fib(x - 2) + fib(x - 1)


print(fib(10))
for i in range(1, 11):
    print(fib(i), end=" , ")

结果如下:
在这里插入图片描述

第四种方法实现(利用列表实现)

输出30000以下的斐波那契数列,且每输出6个进行换行

a = [1, 1]
for i in range(2, 24):
    num = (a[i - 1] + a[i - 2])
    if num >= 30000:
        break
    else:
        a.append(num)

# print(a[0:6])
# print(a[6:12])
# print(a[12:18])
# print(a[18:24])

for i in range(6):
    print(a[i], end=" ")
print()
for i in range(6, 12):
    print(a[i], end=" ")
print()
for i in range(12, 18):
    print(a[i], end=" ")
print()
for i in range(18, 23):
    print(a[i], end=" ")


结果如下:
在这里插入图片描述

【蓝桥杯每日一练】 斐波那契数列 阅读详情

相关推荐

python实现斐波那契数列

斐波那契数列是一个非常经典的数列,它的定义是:第0项为0,第1项为1,从第二项开始,每一项都等于前两项之和。这是最直观的方式,但也是效率最低的方式,因为每次计算都需要重复计算前面的项。动态规划的方式将每一步的计算结果存储起来,避免了重复计算。迭代的效率比递归要高,因为它不需要重复计算。它从第2项开始,每次计算出下一项。以上三种方法都可以实现斐波那契数列, 可以根据需要选择适合的方法斐波那契数列的递归实现和动态规划实现有什么优缺点?

道亦无名 2929

python编程裴波那契数列求前N项和pbnq-python.zip

python编程学习,裴波那契数列(裴波纳契数列)前N项求和

Python程序:输出斐波那契数列

定义一个Python函数fib(n),返回斐波那契数列前n项构成的列表。 def fib(n): fib = [] if n == 1: fib.append(1) elif n == 2: fib.append(1) fib.append(1) else: fib.append(1) ...

howard2005的专栏 1万+

Python婓波那契数列(Fibonacci sequence)

在数学上,斐波那契数列定义为:第一项F(1)=0,第二项F(2)=1,而后续每一项都是前两项的和,即F(n)=F(n-1)+F(n-2)(n≥3),因此,斐波那契数列的前几个数字是:0、1、1、2、3、5、8、13、21、34、……对于第n项,通项公式可以写作:。这种方法利用了矩阵的幂运算的性质,避免了传统的递归或迭代方法中的重复计算,从而大大提高了计算效率。使用函数递归或非递归的方式都可以方便地计算斐波那契函数:F(1)=0,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3)。

moment159的博客 2万+

斐波那契数列python(5种方法

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) ...

青春正年少我要大声笑lamusique 8万+

python利用递归函数实现斐波那契数列_python实现斐波那契数列的实例

python实现斐波那契数列方法示例介绍斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) 。1. 元组实现fibs = [0, 1]for i in range(8):fibs.append(fibs[-2] + fibs...

weixin_39592137的博客 961

Python斐波那契数列四种写法

在这些时候,我可以附和着笑,项目经理是决不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列Python怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做项目经理的时候,写账要用。”我暗想我和项目经理的等级还很远呢,而且我们项目里也用不到斐波那契

FontTian的博客 5万+

练习:四种方法实现打印feibo斐波那契数列

刚开始学Python的时候,记得经常遇到打印斐波那契数列了,今天玩玩使用四种办法打印出斐波那契数列 方法一:使用普通函数 1 def feibo(n): 2 """ 3 打印斐波那契数列 4 :param n: 输入要打出多少项 5 """ 6 count = 0 # 定义一个计数器 7 num1, num2 = 0, 1 #...

Age 1196

python斐波那契循环_Python斐波那契数列四种写法

在这些时候,我可以附和着笑,项目经理是决不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列Python怎样写的?”我想,小白一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些...

weixin_39573822的博客 1430

语言运行泰博那契数列_Python斐波那契数列四种写法

在这些时候,我可以附和着笑,项目经理是绝不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列Python怎样写的?”我想,讨饭一样的人,也配考我么?便回...

weixin_31437055的博客 147

斐波那契数列四种实现

孔乙己自己知道不能和他们谈天,便只好向 Intern 说话。有一回对我说道,“你写过代码么?”我略略点一点头。他说,“写过代码,……我便考你一考。斐波那契数列的输出,怎样实现?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些代码应该记着。将来做 Leader 的时候,开发项目要用。”我暗想我和 Leader 的等级还很远呢,...

Crossin的编程教室 858

python输出斐波那契数列_python实现斐波那契数列方法示例

介绍斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) 。1. 元组实现fibs = [0, 1]for i in range(8):fibs.append(fibs[-2] + fibs[-1])这能得到一个在指定范围内的斐...

weixin_39617473的博客 1126

Python如何实现斐波那契数列

公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!小猿会从最基础的...

程序IT圈 244

python斐波那契数列四种写法_Python斐波那契数列四种写法

在这些时候,我可以附和着笑,项目经理是决不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列Python怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些...

weixin_39600823的博客 164

fibonacci数列_Python斐波那契数列四种写法

在这些时候,我可以附和着笑,项目经理是绝不责备的。而且项目经理见了孔乙己,也每每这样问他,引人发笑。孔乙己自己知道不能和他们谈天,便只好向新人说话。有一回对我说道,“你学过数据结构吗?”我略略点一点头。他说,“学过数据结构,……我便考你一考。斐波那契数列Python怎样写的?”我想,讨饭一样的人,也配考我么?便回...

weixin_39780260的博客 206
上一篇: Django路由说明
下一篇: python实现金字塔(输入任意一个大写字母)
代序春秋
博客等级 码龄10年 232粉丝 111原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值