zoukankan      html  css  js  c++  java
  • 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])
  • 相关阅读:
    android学习---Gallery画廊视图
    王立平--查看SQLite中的数据信息
    java中CyclicBarrier简单入门使用
    [ExtJS5学习笔记]第三十三节 sencha extjs 5 grid表格导出excel
    使用target打开的iframe 获取src的问题
    读《暗时间》的思考
    hdfs
    编译最新的SQLite 3.8.4.3为一个DLL
    使用Highcharts生成折线图_at last
    CentOS7 安装EFK(elasticsearch、fluent、kibana)进行Docker下日志搜集
  • 原文地址:https://www.cnblogs.com/readygood/p/10153081.html
Copyright © 2011-2022 走看看