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

本文介绍了使用Python实现斐波那契数列的四种方法,包括顺序输出、利用组包拆包原理、递归函数以及列表实现。详细展示了每种方法的实现结果,包括递归方式输出30000以下的斐波那契数列,并按一定规律换行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

斐波那契数列(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=" ")


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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值