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