什么是斐波那契数列?

  -- 一组第从第三个值开始,每个值都等于前两个值之和的一种有意思的数列

      如[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

如何用程序进行实现?

  -- 逻辑整理

    初始值n_1 = 1, n_2 = 1

    n_3 = n_1 + n_2

    第三个值开始,每个值都是前两个值之和,假如n_1 = n_2 ,n_2 = n_3,

    实现了整体 n_1, n_2往后移动一个数,也就是说,现在的n_1 +n_2 等价于 n_2 + n_3

    其结果虽然给n_3接收,但是n_3本质上是第四个数了,不妨后面的数都是如此,嘉祥n_3无限往后移

    n_3 可以代替任何后面的数

  -- 程序化:

#!/usr/bin/python3

__author__ = 'beimenchuixue'
__blog__ = 'http://www.cnblogs.com/2bjiujiu/' def fab(n):
list_fab = [] # 定义接收fab值列表
n_1, n_2 = 1, 1 # 定义初始值 n_1=1,n_2=1
list_fab.append(n_1) # 把两个初始值加入到fab值列表
list_fab.append(n_2) for i in range(n-2): # 按输入要求几个减去2,因为有两个初始值
n_3 = n_1 + n_2 # 第三个值 = 前两个值之和
list_fab.append(n_3) # 把加起来的值加入到fab值列表 n_1, n_2 = n_2, n_3 # n_1和n_2同步往后移一位 return list_fab # 返回结果 if __name__ == '__main__':
result = fab(10) # 接收结果
print(result, len(result))

  这个实现的是正向推导,没有实现子问题划分——从后面推导,想看?看我下一个递归篇

最新文章

  1. BZOJ 4390: [Usaco2015 dec]Max Flow
  2. PHP获取当前位置
  3. Apache Commons Chain
  4. winfrom调用FastReport模板
  5. MAC下的命令操作
  6. sys模块的初步认识
  7. J2EE 第二阶段项目之编写代码(六)
  8. Phpstorm开发记
  9. uva 12097 - Pie
  10. (java)从零开始之--观察者设计模式Observer
  11. 11个实用但你可能不知道的Python程序库
  12. 开源 免费 java CMS - FreeCMS1.4-功能说明-站点管理
  13. nopCommerce 3.9 大波浪系列 之 可退款的支付宝插件(下)
  14. 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化
  15. [C#]200 行代码使用 C# 实现区块链
  16. MySQL优化技巧总结
  17. Typora的使用
  18. 【NIFI】 Apache NiFI 安装及简单的使用
  19. 易错之for循环
  20. linux下保存下位机输出的串口信息为文件

热门文章

  1. 使用dropwizard(4)-加入测试-jacoco代码覆盖率
  2. 一种基于http协议的敏感数据传输方案
  3. Docker三十分钟快速入门(下)
  4. node实现微信扫码群发消息《附上github代码》
  5. jsp基础了解
  6. django 项目中遇到的问题(持续更新中)
  7. 代理内网上网-iptables
  8. 大搜车知乎live中的面试题结题方法记录
  9. POJ 3624 Charm Bracelet(01背包裸题)
  10. hihoCoder #1015 : KMP算法【KMP裸题,板子】