斐波那契数列

  斐波那契数列又称费氏数列,是数学家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. PLSQL设置细节

    1. tnsnames.ora 文件设置中,前面不能包含空格,否则:无法解析连接字符串 2. 当一切配置都正确,但是还是无法连接:“身份证明检索失败” 解决:打开tns_admin配置连接串的目录,修 ...

  2. Python字符串格式化--format()方法

    https://blog.csdn.net/i_chaoren/article/details/77922939       csdn

  3. openXML设置Excel行组合

    重要代码: row = new DOS.Row() { RowIndex = new DOX.UInt32Value(rowIndex), Spans = new DOX.ListValue<D ...

  4. Leetcode35 Search Insert Position 解题思路(python)

    本人编程小白,如果有写的不对.或者能更完善的地方请个位批评指正! 这个是leetcode的第35题,这道题的tag是数组,python里面叫list,需要用到二分搜索法 35. Search Inse ...

  5. Redhat7配置ali-yum源

    1.删除所有包 rpm -qa|grep yum|xargs rpm -e --nodeps 2.下载相关文件 下载地址  https://mirrors.aliyun.com/centos/7/os ...

  6. Java的简单类型不能够精确的对浮点数进行运算

    由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入. import java.math.BigDecimal; /** * 由于Java的简单类 ...

  7. 阿里,百度面试90%会问的Java面试题

    题目一 请对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别? 考点分析: 分析 Exception 和 Error 的区别,是从概念角度考察了 Java 处理机制.总的来 ...

  8. Java开发微服务为什么一定要选spring cloud?

    来自:网易乐得技术团队,作者:董添 李秉谦 现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性.同时,支持微服务的技术栈也是多种多样的,本系列文章主要介绍这些技术中的翘楚 ...

  9. 《转》studio界面、快捷键

    按键 说明 F1 帮助 Alt(Option)+F1 查找文件所在目录位置 Alt(Option)+1 快速打开或隐藏工程面板 Ctrl(Command)+Alt(Option)+ 打开设置对话框 A ...

  10. vi命令详解(转)

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...