斐波那契数列又称费氏数列,是数学家Leonardoda Fibonacci发现的。指的是0、一、一、二、三、五、八、1三、2一、3四、······这样的数列。即从0和1开始,第n项等于第n-1项与n-2项之和。须要注意的是0是第0项,而不是第一项。app
斐波那契数列的规律其实就是将前两项的值相加并获得当前项的值,用for循环和while循环都能实现这个逻辑,以下图:
spa
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的值,即当前循环的上一个数列值,下一循环的前二项的值。依次类推,周而复始的计算出斐波那契数列。code
简单的实现:blog
#打印出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)
lst = [0,1] for i in range(100): lst.append(lst[i]+lst[i+1]) print(lst[101])