• 练习六:斐波那契数列(fibonacci)


    题目:斐波那契数列。

    程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

    在数学上,斐波那契数列是以递归的方法来定义:

    F0 = 0 (n=0)
    F1 = 1 (n=1)
    Fn = F[n-1]+ F[n-2](n=>2)
    ---------------------
    方法一:使用递归计算

     1 def fibonacci(month):
     2     if month == 1:
     3         return 1
     4     elif month == 2:
     5         return 1
     6     else:
     7         return fibonacci(month-1)+fibonacci(month-2)
     8 
     9 a =fibonacci(35)
    10 print(a)

    方法二:利用while循环

     1 def fab(n):
     2     n1 = 1
     3     n2 = 1
     4     n3 = 0
     5     if n < 1:  #加条件判断,如果n<时,将直接返回-1
     6         return -1
     7     while (n-2) > 0:
     8         n3 = n1+n2
     9         n1 = n2
    10         n2 = n3
    11         n -= 1
    12     return n3
    13 
    14 n = fab(20)
    15 print(n)

     改要求为输出指定个数的斐波那契数列,只需要将结果返回到列表中,可直接计数

     1 def fib(n):
     2     if n == 1:
     3         return [1]
     4     if n == 2:
     5         return [1,1]
     6     fibs = [1,1]
     7     for i in range(2,n):
     8         fibs.append(fibs[-1]+fibs[-2])
     9     return fibs
    10 
    11 print(fib(5))
  • 相关阅读:
    逆波兰表达式解数学运算(c#)
    杂文
    WebDriverExtensionsByC#
    cookie使用
    Discuz
    重构中学习
    生活知识
    js和 jquery对象
    jquery中is的用法
    html下select追加元素,IE下错误
  • 原文地址:https://www.cnblogs.com/pinpin/p/9865066.html
Copyright © 2020-2023  润新知