斐波那契数列

  斐波那契数列又称费氏数列,是数学家Leonardoda Fibonacci发现的。指的是0、1、1、2、3、5、8、13、21、34、······这样的数列。即从0和1开始,第n项等于第n-1项与n-2项之和。需要注意的是0是第0项,而不是第一项。

用Python中简单的赋值语句实现斐波那契数列的赋值逻辑

  斐波那契数列的规律其实就是将前两项的值相加并得到当前项的值,用for循环和while循环都能实现这个逻辑,如下图:

赋值原理:

  n代表斐波那契数列(以下简称数列)中的当前项的值,这个值要存储起来在下一个循环中与当前循环中的上一项相加,也就是下一个循环中的前二项,由于斐波那契数列是从0和1开始的,所以在循环开始时要初始化a和b的值,将a作为第0项,b作为第一项。在第一次循环中n=a+b=1,这样n中就储存了第二项的值,然后将这个值赋值给b,使b中存储第二项的数列值,也就是当前项的数列值。另外,更重要的一点是,在n赋值给b之前,b一定要将其在当前循环中的值先赋值给a,然后a的值就是下次循环中的第前二项的值。在某次循环中,n始终代表的是数列中当前项的值,b的最终值也是当前项的值,但会留在下一次循环中作为下一次循环的前一项的值使用,而a在本次循环中的最终值则是当前循环中b的初始值,也就是上一次循环的n的值,即当前循环的上一个数列值,下一循环的前二项的值。依次类推,周而复始的计算出斐波那契数列。

  简单的实现:

#打印出100以内的斐波那契数列
#while语句:
#
a=int(0)
b=int(1)
n=int(0)
while n<=100:
n=a+b
a=b
b=n
if n<100:
print(n)
#
#求斐波那契数列的第101项
a=int(0)
b=int(1)
s=int(0)
while s<=100:
n=a+b
a=b
b=n
s=s+1
print(n)

如果用list来实现就很简单了:

lst = [0,1]
for i in range(100):
lst.append(lst[i]+lst[i+1])
print(lst[101])

Python中斐波那契数列的赋值逻辑的更多相关文章

  1. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...

  2. python实现斐波那契数列(Fibonacci sequence)

    使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐 ...

  3. python基础----斐波那契数列

    python实现斐波那契数列的三种方法 """ 斐波那契数列 0,1,1,2,3,5,8,13,21,... """ # 方法一:while ...

  4. Python——通过斐波那契数列来理解生成器

    一.生成器(generator) 先来看看一个简单的菲波那切数列,出第一个和第二个外,任意一个数都是由前两个数相加得到的.如:0,1,1,2,3,5,8,13...... 输入斐波那契数列前N个数: ...

  5. python之斐波那契数列递归推导在性能方面的反思

    在各种语言中,谈到递归首当其冲的是斐波那契数列,太典型了,简直就是标杆 一开始本人在学习递归也是如此,因为太符合逻辑了 后台在工作和学习中,不断反思递归真的就好嘛? 首先递归需要从后往前推导,所有数据 ...

  6. python实现斐波那契数列

    https://www.cnblogs.com/wolfshining/p/7662453.html 斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.…… 数列特点:该数列从第 ...

  7. python实现斐波那契数列笔记

    斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.…… 数列特点:该数列从第三项开始,每个数的值为其前两个数之和,用python实现起来很简单: a=0 b=1 while b ...

  8. [Python3.X]python 实现斐波那契数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...

  9. python之斐波那契数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数 这样的一个数列:0,1,1,2,3,8,13,21,34…….. 特别指出:0不是第一项,而是第零项. 在数学上被以 递归的方法定 ...

随机推荐

  1. PHP单一文件入口框架简析

    <?php /** * PHP单一文件框架设计简析 * 1.MVC架构实现 * 2.URL路由原理 */ //URL路由原理 /** * 路由作用 * 获取url中的c和a变量,执行c类对应的方 ...

  2. iText框架(生成pdf文档)

    1.创建一个itext的简单示例 a.导包(pom.xml文件) <dependencies> <dependency> <groupId>com.lowagie& ...

  3. appium安装问题集锦

    问题一: MacBook-Air:Cellar$ npm -v dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dyl ...

  4. 微信小程序------加导航

    效果图如下 这个其实很简单 在app.json上面加点代码 "window":{ "backgroundTextStyle":"light" ...

  5. SSM_CRUD新手练习(10)返回分页的JSON数据

    我们完成了员工的分页查询,但是现在这种做法只能适应浏览器和服务器的交互模式,但在移动互联网时代,客户端不仅仅只有浏览器,还有安卓和IOS客户端.我们的解决方式是AJAX+JSON方式来实现平台无关性. ...

  6. java面试问题收集(2)

    1 Integer int相等问题 Integer对象和int比较的时候会有一个拆箱的过程,始终相等 Integer和new Integer对象不会相等,引用不同 两个Integer对象比较,Inte ...

  7. Shell变量类型和运算符-2

  8. ARM指令学习

    跳转指令 直接向程序计数器PC写入i跳转地址值,可以实现在4GB的地址空间中的任意跳转. ARM跳转指令可以完成向前或向后的32MB的地址空间的跳转. -B 跳转指令 -BL 带返回的跳转指令 -BL ...

  9. 虚拟机找不到/mnt/hgfs挂载目录——debian与 vmware

    如果在安装好 VMware Tools 并在设置里面设定好共享目录之后仍然找不到 /mnt/hgfs 默认挂载目录,那么尝试以下步骤: 1. 确认VMware Tools 和共享目录设定已经完成: 2 ...

  10. Linux更新源汇总-18.9.7更新

    企业站 阿里云:https://opsx.alibaba.com/mirror 网易:http://mirrors.163.com/ 教育站 北京理工大学:http://mirror.bit.edu. ...