呼和浩特企业网站制作,韩国最牛的设计网站,wordpress视频插件,微信小程序制作个人版目录
1.说明
2.原理
3.python实现
第一种#xff1a;
第二种#xff1a;
第三种 第四种 1.说明
Fibonacci为1200年代的欧洲数学家#xff0c;在他的着作中曾经提到#xff1a;「若有一只免子每个月生一只小免子#xff0c;一个月后小免子也开始生产。起初只有一只免…目录
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作为第一项。在第一次循环中nab1这样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)
输出