Python中斐波那契数列的赋值逻辑
斐波那契数列
斐波那契数列又称费氏数列,是数学家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中斐波那契数列的赋值逻辑的更多相关文章
- Python中斐波那契数列的四种写法
在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...
- python实现斐波那契数列(Fibonacci sequence)
使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐 ...
- python基础----斐波那契数列
python实现斐波那契数列的三种方法 """ 斐波那契数列 0,1,1,2,3,5,8,13,21,... """ # 方法一:while ...
- Python——通过斐波那契数列来理解生成器
一.生成器(generator) 先来看看一个简单的菲波那切数列,出第一个和第二个外,任意一个数都是由前两个数相加得到的.如:0,1,1,2,3,5,8,13...... 输入斐波那契数列前N个数: ...
- python之斐波那契数列递归推导在性能方面的反思
在各种语言中,谈到递归首当其冲的是斐波那契数列,太典型了,简直就是标杆 一开始本人在学习递归也是如此,因为太符合逻辑了 后台在工作和学习中,不断反思递归真的就好嘛? 首先递归需要从后往前推导,所有数据 ...
- python实现斐波那契数列
https://www.cnblogs.com/wolfshining/p/7662453.html 斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.…… 数列特点:该数列从第 ...
- python实现斐波那契数列笔记
斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.…… 数列特点:该数列从第三项开始,每个数的值为其前两个数之和,用python实现起来很简单: a=0 b=1 while b ...
- [Python3.X]python 实现斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...
- python之斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数 这样的一个数列:0,1,1,2,3,8,13,21,34…….. 特别指出:0不是第一项,而是第零项. 在数学上被以 递归的方法定 ...
随机推荐
- [转]ps命令详解
原文地址:http://apps.hi.baidu.com/share/detail/32573968 转载自:http://www.cnblogs.com/wangkangluo1/archive/ ...
- [swarthmore cs75] Lab 0 Warmup & Basic OCaml
课程回顾 Swarthmore学院16年开的编译系统课,总共10次大作业.本随笔记录了相关的课堂笔记以及第1次大作业. 什么是编译 编译就是执行Program->Program'转换的过程,如下 ...
- U-Boot bootargs简析
Linux内核启动时需要一些配置信息,如根文件系统的类型.flash分区情况.串口终端的编号.内存的使用情况等等,而由于U-Boot和Linux Kernel的镜像是独立的两个文件,所以只能两者约定好 ...
- linux(Redhat7)安装Apache
1.下载apache安装包以及安装依赖的包(apr.apr-util.pcre)wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.37.tar. ...
- android hal 诠释
历史原因使Android系统有了HAL,它的角色相当于一个中间人,对上层,它负责给JNI提供调用kernel的方法,对下层,它所提供的方法包含能够访问kernel的函数,即kernel提供给上层的AP ...
- 64位平台C/C++容易犯的错误
64位平台的介绍 IA-64 is a 64-bit microprocessor architecture developed by Intel and Hewlett Packard compa ...
- Android使用ViewPager+PhotoView实现图片查看器
可实现功能效果说明: 可实现多张图片点击放大,手指控制,左右滑动,多张图片点击任意位置定位显示任意位置图片:无动画,可自己加 效果图: 核心代码 ...
- sublimeText3编辑器 + 入门教程 + 使用大全
sublimeText3编辑器 + 入门教程 + 使用大全 Ctrl+D选中光标所占的文本,继续操作则会选中下一个相同的的文本 ctrl+G:输入行号,可快速跳转该行 ctrl+p:输入冒号,在输入行 ...
- CSS3——:nth-child选择器基本用法简述
注:n 是从1开始的 :nth-child 是 CSS3 提供的一个好用的选择器,因为在项目中经常用到,所以简单总结了它的常用方法 下面示例代码截图用的是同一个例子,p元素的父元素都是body p ...
- linux系统下查看图片尺寸的命令
1.首先需要安装:imagemagick,即: # apt-get install imagemagick 2.用 identify 命令查询对应图片的信息,即: # identify logo.jp ...