斐波那契三种实现方式

斐波那契在很多题目里都会出现,解法也是有很多种,这里面列出三种用于加深对 非递归递归(函数式编程),尾递归的理解。

#! /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分别对应上面三种方式。

 

你可能感兴趣的:(递归,尾递归,斐波那契)