码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-10-28 12:48:54      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:enc   判断   列表   app   end   题目   sequence   计数   计算   

题目:斐波那契数列。

程序分析:斐波那契数列(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))

 

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

标签:enc   判断   列表   app   end   题目   sequence   计数   计算   

原文地址:https://www.cnblogs.com/pinpin/p/9865066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!