python 给定n,返回n以内的斐波那契数列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 给定n,返回n以内的斐波那契数列相关的知识,希望对你有一定的参考价值。

方式一:函数

技术分享
1 def fabs(n):
2     a, b = 0, 1
3     while b < n:
4         print(b, end= )
5         a, b = b, a+b
6 
7 fabs(1000)
View Code

方式二:列表

技术分享
1 result = [0, 1]
2 
3 def fabs(n):
4     while n-result[-1] > result[-2]:
5         result.append(result[-2] + result[-1])
6 
7 fabs(100)
8 print(result)
View Code

方式三:类

技术分享
 1 class Fabs:
 2     
 3     def __init__(self, max):
 4         self.max = max
 5         self.a, self.b = 0, 1
 6 
 7     def __iter__(self):
 8         return self
 9 
10     def next(self):
11         if self.b<self.max:
12             r = self.b
13             self.a, self.b = self.b, self.a+self.b
14             return r
15 
16 
17 f1 = Fabs(1000)
18 m = f1.next()
19 while m:
20     print(m, end= )
21     m = f1.next()
View Code

方式四:生成器

技术分享
1 def fabs(n):
2     a, b = 0, 1
3     while b<n:
4         yield b
5         a, b = b, a+b
6 
7 if __name__ == __main__:
8     for i in fabs(1000):
9         print(i, end= )
View Code

 

以上是关于python 给定n,返回n以内的斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章

递归优化的斐波那契数列

使用reduce方法的斐波那契数列

新的斐波那契数列

P1-2017级算法第一次上机 A 水水的斐波那契数列

斐波那契数列

洛谷U16574 attack的斐波那契