斐波那契在很多题目里都会出现,解法也是有很多种,这里面列出三种用于加深对 非递归,递归(函数式编程),尾递归的理解。
#! /usr/bin/env python
#coding=utf-8
def Fib(n):
a=1
b=1
n=n-1
while n>0:
temp=a
a=a+b
b=temp
n=n-1
return a
def Fib2(a):
if a== 0 or a==1:
return 1
else:
return Fib2(a-2)+Fib2(a-1)
def Fib3(a,b,n):
if n == 1:
return b
else:
return Fib3(b,a+b,n-1)
print Fib(5),Fib2(5),Fib3(1,1,5)
结果如下:
> "C:\Python27\pythonw.exe" -u "G:\P\fib.py"
8 8 8
Fib,Fib2,Fib3分别对应上面三种方式。