博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python_斐波那契数列
阅读量:4612 次
发布时间:2019-06-09

本文共 1039 字,大约阅读时间需要 3 分钟。

什么是斐波那契数列?

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

      如[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))

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

转载于:https://www.cnblogs.com/2bjiujiu/p/6686111.html

你可能感兴趣的文章
bzoj1101:[POI2007]ZAP-Queries
查看>>
canvas.drawBitmap(bitmap, src, dst, paint)
查看>>
springboot&&springcloud知识点
查看>>
SON用法简介
查看>>
ffmpeg示例一:源码
查看>>
51Nod 1042 数字0-9的数量 数位DP
查看>>
jquery隔行变色代码
查看>>
python全栈学习--day33(网络编程-socket)
查看>>
python全栈学习--day14(列表推导式,生成器表达式,内置函数)
查看>>
201771010125王瑜《面向对象程序设计(java)》第十七周学习总结
查看>>
游标cursor
查看>>
JSON 和 json 的方法
查看>>
CentOS 无法加载 ntfs文件系统类型解决办法
查看>>
windows service程序的Environment.CurrentDirectory路径
查看>>
ThinkPHP模板继承和修改title
查看>>
Boussinesq 近似及静压假定,内外模分离方法(附录A)
查看>>
有限元边界 Dirichlet 条件处理
查看>>
聚簇索引和非聚簇索引区别
查看>>
Java中日期与Oracle中日期转换
查看>>
socket
查看>>