python如何实现斐波那契数列
作者:签到赢福利
这篇文章主要介绍了python如何实现斐波那契数列问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
python实现斐波那契数列
利用for循环来实现
核心:python列表中可以用-1,-2来索引和访问倒数第一个数和倒数第二个数。
fibs = [1,2] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) print(fibs)
运行结果:
range中的参数代表此for循环的循环次数。
使用while循环来实现
i = 0 j = 1 while i<10000 print(i,end = ' ') i,j = j,i+j
运行结果:
i,j = j,i+j 是并列赋值,一开始竟然看成由逗号隔开的三个东西,然后想了好久,服了。
递归
def fibs(n): if n < 1: return -1 elif n==1 or n==2: return 1 else: return fibs(n-1) + fibs(n-2) num = int(input('input num:')) for i in range(1,num+1): print(fibs(i),end=' ')
递归函数里面的话得到的只是你输入个数的那个最大的斐波那契数,输出的话是需要一个一个输出的,就是用for循环输出。
python编写函数求斐波拉契数列(0、1、1、2、3、5、8、..)并求用户输入的前x项之和
什么是斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”
指的是这样一个数列:
0、1、1、2、3、5、8、13、21、34、……
在数学上,斐波那契数列以如下被以递推的方法定义:
F(1)=1 F(2)=1 F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
斐波那契数列规律
除了第一项和第二项外,从第三项开始,每一项都等于前两项之和
斐波那契数列的代码实现
用Python编写函数求斐波拉契数列(0、1、1、2、3、5、8、…)并根据用户输入的前x项进行求和
def fib(n): list = [0,1] a,b = 0,1 for i in range(2,n+1): a,b=b,a+b list.append(b) return list while True: try: x = int(input('请输入斐波那契数列的长度:')) if x <= 0: print('长度输入不合法!') continue else: sum = 0 list = fib(x) # 调用前面写的fib函数 print('前{}项的斐波那契数列是:'.format(x)) for j in range(0,x): print(list[j],end=' ') sum = sum + list[j] # 求和 print ('\n') print('前{}项的斐波那契数列之和是:\n{}'.format(x,sum)) break except ValueError: print ('长度输入不合法!') continue
执行结果:
请输入斐波那契数列的长度:20
前20项的斐波那契数列是:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181前20项的斐波那契数列之和是:
10945
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。