练习六:斐波那契数列(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))

 

posted @ 2018-10-28 12:16  阳光宝贝-沐沐  阅读(817)  评论(0编辑  收藏  举报