使用尾递归解决问题
爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
1阶台阶 1种方法 2阶台阶 2种方法 3阶台阶 3种 4阶台阶 5种 5阶台阶 8种 。。。 所以可以转换成斐波那契数列进行求解
def weiT(n,a=1,b=2,c=3): if n==1: return 1 elif n==2: return 2 else: if n==c: return a+b else: return weiT(n,a=b,b=a+b,c=c+1)
斐波那契
def weiF(n,a=1,b=1,c=3): if n < 3: return 1 else: if n == c: return a+b else: return weiF(n,a=b,b=a+b,c=c+1)