什么是斐波那契数列?

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

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

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

python_斐波那契数列的更多相关文章

  1. 多测师讲解python_斐波那契数列:_高级讲师肖sir

    def f(n): a,b=1,1 if n==1 or n ==2: return 1 else: i=3 while i<=n: a,b=b,a+b i+=1 return bprint(f ...

  2. Python_每日习题_0006_斐波那契数列

    程序设计: 斐波那契数列(Fibonacci sequence),从1,1开始,后面的每一项等于前面两项之和. 图方便就递归实现,图性能就用循环. # for 循环 target = int(inpu ...

  3. C#求斐波那契数列第30项的值(递归和非递归)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. 斐波拉契数列加强版——时间复杂度O(1),空间复杂度O(1)

    对于斐波拉契经典问题,我们都非常熟悉,通过递推公式F(n) = F(n - ) + F(n - ),我们可以在线性时间内求出第n项F(n),现在考虑斐波拉契的加强版,我们要求的项数n的范围为int范围 ...

  5. js中的斐波那契数列法

    //斐波那契数列:1,2,3,5,8,13…… //从第3个起的第n个等于前两个之和 //解法1: var n1 = 1,n2 = 2; for(var i=3;i<101;i++){ var ...

  6. 剑指Offer面试题:8.斐波那契数列

    一.题目:斐波那契数列 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: 二.效率很低的解法 很多C/C++/C#/Java语言教科书在讲述递归函数的时 ...

  7. 算法: 斐波那契数列C/C++实现

    斐波那契数列: 1,1,2,3,5,8,13,21,34,....     //求斐波那契数列第n项的值 //1,1,2,3,5,8,13,21,34... //1.递归: //缺点:当n过大时,递归 ...

  8. 洛谷P1962 斐波那契数列 || P1349 广义斐波那契数列[矩阵乘法]

    P1962 斐波那契数列 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数 ...

  9. Python递归及斐波那契数列

    递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可 ...

随机推荐

  1. jQuery 入门

    不能正常引用jQuery-2.2.4.min.js所以代码没生效 jQuery 是一个 JavaScript 函数库.jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操 ...

  2. RedHat7下PostGIS源码安装

    本文介绍在RedHat7环境下安装使用PostGIS的流程. 1. PostgreSQL 1.1 yum安装PostgreSQL 这个比较简单,直接使用yum安装即可. $ sudo yum inst ...

  3. this语句

    this语句 this语句调用构造器 原    因: 代码功能重复,重复会导致代码维护性低. 如何使用:this([实参]); 注意事项:构造器重载的调用,this(参数)必须写在构造方法第一行,因此 ...

  4. 使用Three.js 基本组件以及流程

    1. 创建场景 var scene = new THREE.Scene(); 2. 创建相机,设置可视范围 var camera = new THREE.PerspectiveCamera(45,  ...

  5. 使用 requirejs 打包 jQuery 插件 datetimepicker 的问题记录

    网站之前用的时间选择 UI 实在太丑,而且功能单一,决定全站改用 https://github.com/xdan/datetimepicker/ 里面有好几个 js,奇怪的是,只有 /build 目录 ...

  6. [转]-nohup-真正的Shell后台运行

    &方式: Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行. 比如我们要运行mysql在后台: /usr/local/mysql/bin/ ...

  7. [转]Python的3种格式化字符串方法

    本文转自: 夏日微风Python笔记 传统C语言式 命名参数 位置参数 1. 传统C语言式 和c语言里面的 sprintf 类似,参数格式也一样 title = "world" y ...

  8. JSR-303校验类型

    空检查 @Null       验证对象是否为null @NotNull    验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank 检查约束字符串是不是Null还有被Trim的长 ...

  9. 在做vue计算属性,v-for处理数组时遇到的一个bug

    bug: You may have an infinite update loop in a component render function 无限循环 需要处理的数组(在 ** ssq **里): ...

  10. Spring框架学习笔记(3)——配置bean

    1.属性注入 (1)根据setter方法属性注入,这里使用的是property标签.需要bean属性提供对应的setter方法,比如笔记(1)里的 HelloWorld使用的就是这种方法. <! ...