1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python3实现斐波那契数列--4种方法

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

时间:2020-05-29 08:56:06

相关推荐

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=1return resprint("开始")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 = 0if num>2:while i < num:list_nums.insert(i+2,list_nums[i]+list_nums[i+1])i+=1else: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,1if n==1 or n ==2:return 1else:i=3while i<=n:a,b=b,a+bi+=1return bprint(fbnq(int(input("输入一个数:"))))

迭代器版

"""实现斐波那契数列"""class feibo(object):def __init__(self, length):self.num1 = 0self.num2 = 1self.num = self.num1self.length = lengthself.index = 0def __iter__(self):return selfdef __next__(self):self.num = self.num1while True:if self.index == self.length:raise StopIterationself.num1, self.num2 = self.num2, self.num1+self.num2self.index += 1return self.nummyfbnq = feibo(10)# print(list(myfbnq)) # 指针位置已到最后一位for i in myfbnq:print(i)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。