找回密码
 中文实名注册
查看: 281|回复: 0

【教程】斐波那契数列

[复制链接]

699

主题

1090

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22078
发表于 2021-8-26 15:13:20 | 显示全部楼层 |阅读模式
满足F1 = F2 = 1Fn = Fn-1+Fn-2的数列称为斐波那契数列它的前若干项是112358132134……在Python中用f1及f2分别表示第一个数和第二个数即f1 = 1f2 = 1

f1 = 1
f2 = 1
n = input()
n = int(n)
for i in range(3, n+1):
    fn = f1+f2
    f1 = f2
    f2 = fn


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

# Python 斐波那契数列实现

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

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

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

def recur_fibo(n):
   """递归函数
   输出斐波那契数列"""
   if n <= 1:
       return n
   else:
       return(recur_fibo(n-1) + recur_fibo(n-2))



#Python 使用递归实现斐波那契数列

# 获取用户输入
nterms = int(input("您要输出几项? "))

# 检查输入的数字是否正确
if nterms <= 0:
   print("输入正数")
else:
   print("斐波那契数列:")
   for i in range(nterms):
       print(recur_fibo(i))



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?中文实名注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2024-11-1 09:02 , Processed in 0.039600 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表