斐波那契三种实现方式

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

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

 

转载于:https://my.oschina.net/hebianxizao/blog/62328

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值