zoukankan      html  css  js  c++  java
  • Python实现斐波拉契数列

    斐波拉契数列

      斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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实现斐波拉契数列:

    方法一:用for循环逐个打印出数列的值
    def fibonacci1(n):
        a,b = 0,1    
        for i in range(n):
            a,b =b,a+b        
    print a
    方法二:用while循环逐个打印出数列的值
    def fibonacci2(n):
        a =0
        b = 1
        i =0
        while i <n:
            print b
            a,b = b,a+b
            i = i+1
    方法三:用递归的方法,加上for循环,把每次循环产生的新项增加到数列最后,最后一次性输出list
    def fibonacci3(n):
        lis =[]
        for i in range(n):
            if i ==1 or i ==0:
                lis.append(1)
            else:
                lis.append(lis[i-2]+lis[i-1])
        print lis
    方法四:用递归的方法,加上while循环,把每次循环产生的新项增加到数列最后,最后一次性输出list
    def fibonacci4(n):
        lis=[]
        i=0
        while i<n:
            if i==0 or i ==1:
                lis.append(1)
            else:
                lis.append((lis[i-2]+lis[i-1]))
            i = i + 1
        print lis
    方法五:先用递归的方法,定义一个返回第n项值的函数fn,再加上for循环,以此返回全部n项的值。
    def fibonacci5(n):
        def fn(i):
            if i <2:
                return 1
            else:
                return (fn(i-2)+fn(i-1))
        for i in range(n):
            print fn(i)
  • 相关阅读:
    HLS直播和时移项目上线
    贪心-hdu-1789-Doing Homework again
    算法---天才排序算法---睡眠排序
    项目集成项目管理之项目范围管理
    hdu1429之BFS
    优秀程序员不得不知道的20个位运算技巧
    eclipse报错:Failed to load the JNI shared library
    HDU 2689 sort it
    svn使用经验---不断总结
    linux下svn的用法
  • 原文地址:https://www.cnblogs.com/chenchang-rjgc/p/11761366.html
Copyright © 2011-2022 走看看