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

Posted pinpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习六:斐波那契数列(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))

 

以上是关于练习六:斐波那契数列(fibonacci)的主要内容,如果未能解决你的问题,请参考以下文章

Java练习 SDUT-1132_斐波那契数列

[Python学习] 斐波那契数列 Fibonacci Sequence

python实现斐波那契数列(Fibonacci sequence)

斐波那契数列Fibonacci问题

编程之美斐波那契(Fibonacci)数列

用递归方法计算斐波那契数列(Recursion Fibonacci Python)