13.3Python基础拾遗(3):斐波那契数列的递归、非递归、生成器实现
2018-03-20 22:35
1036 查看
@斐波那契数列
fibonacci数列的前几项是这样的:0,1,1,2,3,5,8…;
即从第三项开始的每一项,等于前面两项之和;
通过令程序和设备求fibonacci数列的某一高位项,是运算力测试的一个经典问题;
@求fibonacci的第N项:非递归实现
@求fibonacci的第N项:递归实现
@斐波那契数列生成器
从fibonacciGenerator中分批索取数据
fibonacci数列的前几项是这样的:0,1,1,2,3,5,8…;
即从第三项开始的每一项,等于前面两项之和;
通过令程序和设备求fibonacci数列的某一高位项,是运算力测试的一个经典问题;
@求fibonacci的第N项:非递归实现
# 0,1,1,2,3,5,8... # 求斐波那契数列第N项非递归实现 def getFibonacci(n): a = 0 b = 1 for i in range(n): # 把b和temp分别赋值给a和b(也只有Python才能这么任性!) a, b = b, a+b return a
@求fibonacci的第N项:递归实现
# 0,1,1,2,3,5,8... # 求斐波那契数列第N项递归实现 def getFibonacci(n): if n == 0: return 0 elif n == 1: return 1 # 递归求取前两项的值 # 递归的终止条件就是n等于0或1 else: return getFibonacci(n - 1) + getFibonacci(n - 2)
@斐波那契数列生成器
# 连续生成n个斐波那契数 def fibonacciGenerator(n): a = 0 b = 1 for i in range(n): if i > 0: # 把b和temp分别赋值给a和b a, b = b, a+b # 当i==0时,a为0,i==1时,a为1... yield a
从fibonacciGenerator中分批索取数据
fg = fibonacciGenerator(6) # 迭代器的简易遍历 # for item in fg: # print(item) # time.sleep(1) # 迭代器轮询 while True: try: print(next(fg)) except StopIteration: break
相关文章推荐
- 斐波那契数列(Fibonacci sequence)Python实现的三种方案:列表 递归 生成器
- 分别用的列表,递归,生成器三种方式创建出n个元素的斐波那契数列(Python3实现)
- Python3基础 用 函数递归实现 斐波那契数列
- python yield 生成器基本内容及实现斐波那契数列
- 斐波那契数列递归实现和优化
- Java基础------递归(Java实现)
- Java基础算法——斐波那契数列的多种实现方式!
- 零基础算法系列代码_用递归实现进制转换
- java基础实践---非递归用栈实现查找迷宫路径
- 斐波那契数列与阶乘---递归实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- C++:函数的递归调用--实现斐波那契数列
- 斐波那契数列递归与非递归的实现
- 用递归实现斐波那契数列java实现
- 斐波那契数列的递归与循环的算法实现
- 斐波那契数列的非递归实现 JAVA
- [Java实现]Filbonacci斐波那契数列递归带来的问题和改进
- Java还要再学一遍基础(十四)实现斐波那契数列
- 【算法拾遗】二分查找递归非递归实现
- 使用递归实现斐波那契数列