Python中斐波那契数列实现
2017-04-25 16:35
309 查看
Python中斐波那契数列实现
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-04-25 16:04:19 # @Author : xiaoke import os ''' 题目:说有一对可爱的兔子,出生后的第三个月开始, 每一月都会生一对小兔子。当小兔子长到第三个月后, 也会每个月再生一对小小兔子. 要求:假设条件,兔子都不死的情况下,问每个月的兔子总数为多少? 思路:兔子的规律为数列0,1,1,2,3,5,8,13,21......似斐那波契数列的感觉 ''' # 第一种采用迭代的方式实现 def func(num): numList = [0, 1] for i in range(num - 2): numList.append(numList[-2] + numList[-1]) return numList mouth = int(input("亲!请输入月份:")) f = func(mouth) # f[len(f)-1]*2,计算出列表中最后一位数值,乘以2的原因是兔子都是成对计算的 print("第%d个月的兔子数量是:%d" % (mouth, f[len(f) - 1] * 2)) # 结果是: # 亲!请输入月份:9 # 第9个月的兔子数量是:42 # 第二种采用递归的方式实现 def func(num): if num == 0: result = 0 elif num == 1: result = 1 else: result = func(num - 2) + func(num - 1) return result mouth = int(input("亲!请输入月份:")) n = 0 while n < mouth: print("第%d个月的兔子总数是:%d" % (n + 1, func(n) * 2)) n += 1 # 结果是: # 亲!请输入月份:9 # 第1个月的兔子总数是:0 # 第2个月的兔子总数是:2 # 第3个月的兔子总数是:2 # 第4个月的兔子总数是:4 # 第5个月的兔子总数是:6 # 第6个月的兔子总数是:10 # 第7个月的兔子总数是:16 # 第8个月的兔子总数是:26 # 第9个月的兔子总数是:42 # 第三种实现方案:最简单的循环计算每项的值 def func(num): a = 0 b = 1 m = 0 while m < num: print("第%d个月兔子的总数是:%d" % (m + 1, a * 2)) a, b = b, a + b m += 1 mouth = int(input("亲!请输入月份:")) func(mouth) # 结果如下: # 亲!请输入月份:9 # 第1个月兔子的总数是:0 # 第2个月兔子的总数是:2 # 第3个月兔子的总数是:2 # 第4个月兔子的总数是:4 # 第5个月兔子的总数是:6 # 第6个月兔子的总数是:10 # 第7个月兔子的总数是:16 # 第8个月兔子的总数是:26 # 第9个月兔子的总数是:42
相关文章推荐
- python实现的斐波那契数列
- python 实现斐波那契数列
- python 斐波那契数列缓存方式实现
- 斐波那契数列的算法实现 —— python
- python实现最简单斐波那契数列
- python超简单实现斐波那契数列
- 斐波那契数列(Fibonacci sequence)Python实现的三种方案:列表 递归 生成器
- python语言实现斐波那契数列
- Python实现斐波那契数列
- python学习系列---斐波那契数列的多种实现
- Python 实现斐波那契数列 (黄金分割数列)
- 算法:Python中的斐波那契数列实现
- Python实现一个简易的斐波那契数列
- python实现斐波那契数列
- 要求输入一个整数n,请你输出斐波那契数列的第n项 python实现
- python 实现斐波那契数列,动态删除历史数据demo,很久以前写的,分享给大家 推荐
- 用Python简单实现斐波那契数列
- Python3基础 用 函数递归实现 斐波那契数列
- 斐波那契数列的实现(Python)
- python学习系列---斐波那契数列的多种实现