=3:res=list_n(n-1)+list_n(n-2)else:res=1return resprint("开始")f ;更新日期:2025/6/30.幽灵资源网,磁力链接,云盘下载,BT种子,CPU天梯,显卡天梯,UU加速器,阅读3.0,英雄联盟,怪物猎人,无损音乐网,无损音乐下载网站,无损音乐免费下载,320Kmp3下载,无损音乐免费下载网站,音画欣赏,无损音乐,抖音神曲,发烧大碟,车载歌曲,试音天碟,WMA,WAV+CUE,WAV整轨,FLAC分轨,DSD黑胶,HI-FI试音,SACD-ISO,4K高清,高清电影下载,Magnet,Torrent,BitTorrent,迅雷快传,SUB,SRT,ASS/SSA,SUP,RARBG,TLF字幕,BluRay,x265,x264,DTS-HD,WEBRip,10BIT,HDR,DDP5.1,WEB-DL,1080p高清电影下载,中国高清网,高清电影,720p,1080p,MKV,AVI,蓝光原盘,3D高清,电影下载">

python3实现斐波那契数列(4种方法)

脚本专栏 发布日期:2025/6/30 浏览次数:1

正在浏览:python3实现斐波那契数列(4种方法)

基础版(list方法)

# 比较占内存
w = int(input("输入一个数字还你一个斐波那契数列:"))
list_res = []
def list_n(n):
  if n>=3:
    res=list_n(n-1)+list_n(n-2)
  else:
    res=1
  return res

print("开始")

for i in range(0,w):
  list_res.append(list_n(i+1))
print(list_res)

升级版

# 比较占内存
num =int(input("输入一个数字还你一个斐波那契数列v2.0:"))
list_nums=[1,1]
def calculate(num,list_nums):
  i = 0
  if num>2:
    while i < num:
      list_nums.insert(i+2,list_nums[i]+list_nums[i+1])
      i+=1
    else:
      print("数列已生成")
      print(list_nums)
    return list_nums[num-1]
  else:
    return list_nums[0]

res = calculate(num,list_nums)
print("="*50)
print("第%s个:%s"%(num,res))

最实用版(解包的方式)

#省内存
def fbnq(n):
  a,b=1,1
  if n==1 or n ==2:
    return 1
  else:
    i=3
    while i<=n:
      a,b=b,a+b
      i+=1
    return b

print(fbnq(int(input("输入一个数:"))))

迭代器版

"""实现斐波那契数列"""


class feibo(object):
  def __init__(self, length):
    self.num1 = 0
    self.num2 = 1
    self.num = self.num1
    self.length = length
    self.index = 0

  def __iter__(self):
    return self

  def __next__(self):
    self.num = self.num1
    while True:
      if self.index == self.length:
        raise StopIteration
      self.num1, self.num2 = self.num2, self.num1+self.num2
      self.index += 1
      return self.num


myfbnq = feibo(10)
# print(list(myfbnq))  # 指针位置已到最后一位
for i in myfbnq:
  print(i)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。