【蓝桥杯每日一练】 斐波那契数列

目录

1.说明

2.原理

3.python实现

第一种:

第二种:

第三种

 第四种


1.说明

Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)......

        如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道理也可以用于植物的生长,这就是Fibonacci数列,一般习惯称之为费氏数列,例如以下: 1、1 、2、3、5、8、13、21、34、55、89......

2.原理

        斐波那契数列的规律其实就是将前两项的值相加并得到当前项的值,用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的值,即当前循环的上一个数列值,下一循环的前二项的值。依次类推,周而复始的计算出斐波那契数列。

3.python实现

第一种:

#斐波那契数列实现
n = int(input("请输入您要输出多少项:"))n1 = 0#起始第一项
n2 = 1#起始第二项
count = 2#因为已有第一项和第二项,所以起始次数为2#判断输入输出的合理性并完成输出
if n <= 0:print("请输入一个正整数!")
elif n == 1:print("斐波那契数列:")print(n1)
else:print("斐波那契数列:")print(n1,",",n2,end=" ,")while count < n:sum = n1 + n2print(sum,end=" ,")#更新 n1 n2 的值n1,n2 = n2,sumcount += 1

输出:

 看到我们得到的结果,最后还有一个逗号,对于我这有强迫症的人,实在不能接受,那咋整?

第二种:

 消除第一种,后面的逗号

#斐波那契数列实现
n = int(input("请输入您要输出多少项:"))n1 = 0#起始第一项
n2 = 1#起始第二项
count = 2#因为已有第一项和第二项,所以起始次数为2#判断输入输出的合理性并完成输出
if n <= 0:print("请输入一个正整数!")
elif n == 1:print("斐波那契数列:")print(n1)
else:print("斐波那契数列:")print(n1,",",n2,end=" ,")while count < n-1:sum = n1 + n2print(sum,end=" ,")#更新 n1 n2 的值n1,n2 = n2,sumcount += 1
if count < n:sum = n1 + n2print(sum,end="")#更新 n1 n2 的值n1,n2 = n2,sumcount += 1

返回:

 在这里,我们可以看到,第一种结果中,最后的 , 没有了,但这种方法感觉还是比较复杂,那?

第三种

我们用列表来输出斐波那契数列试试,while循环

#斐波那契数列实现
n = int(input("请输入您要输出多少项:"))n1 = 0#起始第一项
n2 = 1#起始第二项
L = [n1,n2] #起始列表#判断输入输出的合理性并完成输出
if n <= 0:print("请输入一个正整数!")
elif n == 1:print("斐波那契数列:")print(n1)
else:print("斐波那契数列:")for i in range(2,n):sum = n1 + n2L.append(sum)#更新 n1 n2 的值n1,n2 = n2,sumprint(L)

返回:

 第四种

for循环输出列表斐波那契数列

#斐波那契数列实现
n = int(input("请输入您要输出多少项:"))n1 = 0#起始第一项
n2 = 1#起始第二项
L = [n1,n2] #起始列表
count = 2#因为已有第一项和第二项,所以起始次数为2#判断输入输出的合理性并完成输出
if n <= 0:print("请输入一个正整数!")
elif n == 1:print("斐波那契数列:")print(n1)
else:print("斐波那契数列:")while count < n:sum = n1 + n2L.append(sum)#更新 n1 n2 的值n1,n2 = n2,sumcount += 1print(L)

输出:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言二级指针

指针可以指向一份普通类型的数据&#xff0c;例如 int、double、char 等&#xff0c;也可以指向一份指针类型的数据&#xff0c;例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针&#xff0c;我们就称它为二级指针&#xff0c;或者指向指针的指针。 假设…

R 安装详解

目录 1.R软件 的下载 1.1 R下载 1.2 RStudio下载 2.辅助软件 notepad 3.R 扩展软件包的安装与管理 4.基本 R 软件的用法 1.基本运行 2.项目目录 5.RStudio 软件 1.介绍 2.项目 3.帮助 4.使用历史命令 5.放大显示某一窗格 6.运行程序 7.中文编码问题 8.Rmd 文件 …

R 基础入门(1)

目录 一、四则运算 练习&#xff1a; 二、数学函数 1.数学函数——平方根、指数、对数 2.数学函数——取整 3.数学函数——三角函数 4.数学函数——反三角函数 5.分布函数和分位数函数 三、输出 1.简单输出 2.用 sink() 函数作运行记录 练习 四、向量计算与变量赋值…

C语言二维数组指针

二维数组在概念上是二维的&#xff0c;有行和列&#xff0c;但在内存中所有的数组元素都是连续排列的&#xff0c;它们之间没有“缝隙”。 以二维数组 a 为例&#xff1a; int a[3][4] { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };从概念上理解&#xff0c;a 的分布像一…

R 基础入门(2)

目录 一、绘图 1.曲线图 curve() 函数 2.加参考线 abline() 3.条形图 barplot() 4.散点图 plot() 练习&#xff1a; 二、读取csv文件 1.表格数据 2.读入表格数据 3.分类变量频数统计 4.数值型变量的统计 三、调用自定义函数 一、绘图 1.曲线图 curve() 函数 用 …

【蓝桥杯每日一练】 巴斯卡三角形(杨辉三角形)

目录 1.说明 ​2.python实现 1.说明 巴斯卡三角形又叫杨辉三角&#xff0c;贾宪三角形 他有以下 性质&#xff1a; 前提&#xff1a;端点的数为1&#xff08;这不是废话吗&#xff0c;头上那个端点不是1还是三角形吗&#xff09; 1、每个数等于它上方两数之和。 2、每行数…

C语言多功能计算器

最近经过一段时间的C语言学习&#xff0c;我使用C语言制作了一个多功能计算器&#xff0c;想要给大家分享一下。 计算器设计流程 1 . 实现基本的加减乘除运算。 2 . 能够实现开方&#xff0c;立方&#xff0c;平方等复杂运算。 3 . 整体的界面展示&#xff0c;显示更加清晰易…

Kafka日志文件存储

日志文件 kafka在server.properties配置文件中通过log.dir属性指定了Kafka的日志存储路径 核心文件 1. log文件 实际存储消息的日志文件, 大小固定1G(参数log.segment.bytes可配置), 写满后就会新增一个新的文件, 文件名是第一条消息的偏移量 2. index文件 以偏移量为索引…

C语言颜色设置

C语言文字颜色和背景颜色设置 代码 #include <stdio.h> #include <stdlib.h>int main() {system("color 11") //背景色和文字颜色system("pause")&#xff1b;return 0; }如上代码是输出蓝色背景和蓝色文字。 在所需要改变窗口颜色的位置调…

因子分析——matlab

目录 一、起源 二、基本思想 三、算法用途 四、实例详解 1.读取数据 2.数据标准化 3.两种不同的做法 3.1 不用函数 3.2 factoran()法 4.对因子得分进行排序 5.对因子得分进行画图 一、起源 因子分析的起源是这样的&#xff1a;1904年英国的一个心理学家发现学生的英…

因子分析——python

目录 一、起源 二、基本思想 三、算法用途 四、因子分析步骤 五、factor_analyzer库 四、实例详解 1.导入库 2.读取数据 3.充分性检测 3.1 Bartletts球状检验 3.2 KMO检验 4.选择因子个数 4.1 特征值和特征向量 4.2 可视化展示 4.3 可视化中显示中文不报错 5.因…

【蓝桥杯每日一练】 三色旗

目录 1.说明 2.解法 3.python实现 第一种 第二种 第三种 1.说明 三色旗的问题最早由E.W.Dijkstra所提出&#xff0c;他所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人)&#xff0c;而多数的作者则使用Three-Color Flag来称之。 假设有一条绳子&#xff0c;上面有红…

C语言结构体数组

结构体数组&#xff0c;是指数组中的每个元素都是一个结构体。 定义结构体数组和定义结构体变量的方式类似。 示例 struct stu{char *name; //姓名int num; //学号int age; //年龄char group; //所在小组 float score; //成绩 }class[5];表示一个班级有5个学生。 结构…

C语言结构体指针

当一个指针变量指向结构体时&#xff0c;我们就称它为结构体指针。 结构体指针的定义形式一般为&#xff1a; struct 结构体名 *变量名;下面是一个定义结构体指针的实例&#xff1a; //结构体 struct stu{char *name; //姓名int num; //学号int age; //年龄char group; /…

熵权法 —— matlab

目录 一、熵权法介绍 二、熵权法赋权步骤 1.指标正向化 mapminmax介绍 2.数据标准化 3.计算信息熵 4.计算权重以及得分 三、实例分析 1.读取数据 2.指标正向化 2.1 越小越优型处理 2.2 某点最优型指标处理 3.数据标准化 4.计算信息熵 5.计算权重 6.计算得分 总…

熵权法 —— python

目录 一、熵权法介绍 二、熵权法赋权步骤 1.指标正向化 mapminmax介绍 2.数据标准化 3.计算信息熵 4.计算权重以及得分 四、实例分析 1.导入相关库 2.读取数据 2.指标正向化 2.1 越小越优型处理 2.2 某点最优型指标处理 3.数据标准化 4.计算信息熵 5.计算权重 6.…

C语言枚举类型详解

情景进入 在编程的时候&#xff0c;有些数据的取值往往是有限的&#xff0c;只能是非常少量的整数&#xff0c;并且最好为每个值都取一个名字&#xff0c;以方便在后续代码中使用&#xff0c;比如一个星期只有七天&#xff0c;一年只有十二个月&#xff0c;一个班每周有六门课…

R语言基础入门(3)之数据类型与相应运算1

目录 一、常量与变量 1.常量 2.变量 二、数据类型 三、数值型向量 3.1 c() 函数 3.2 length(x) 3.3 numeric() 四、向量运算 1.标量和标量运算 2.向量与标量运算 3.等长向量运算 4.不等长向量的运算 五、向量函数 1.向量化的函数 2.排序函数 3.统计函数…

C语言位运算详解

C语言位运算包括&#xff1a;按位与运算、或运算、异或运算、左移运算、右移运算。 位运算&#xff0c;就是对一个比特&#xff08;Bit&#xff09;位进行操作。比特&#xff08;Bit&#xff09;是一个电子元器件&#xff0c;8个比特构成一个字节&#xff08;Byte&#xff09;…

R语言基础入门(4)之数据类型与相应运算2

目录 一、逻辑型向量与比较运算 二、 逻辑运算 三、逻辑运算函数 一、逻辑型向量与比较运算 逻辑型是 R 的基本数据类型之一&#xff0c;只有两个值 TRUE 和 FALSE, 缺失时为 NA。逻辑值一般产生自比较&#xff0c;如sele <- (log10(15) < 2); print(sele) 返回&…