N阶台阶,假设每次走一步或两步,计算共有多少种走法。
以f(n)表示走N-n阶台阶有多少种方式
n表示目前剩余台阶数
首先计算最终状态(即走法少于2种的时候):
最终状态为n=0,即到达终点记一种走法
当n=1时,走法只有f(n-1),所以也可直接返回1
中途每一台阶都有两种走法,所以有两个递归函数调用,以分支形式,最终每条分支到达终点都会增加1种走法返回,所以最先调用的函数会获得所有走法的记数
def up(n):
if n < 2:
return 1
else:
return up(n - 1) + up(n - 2)
# 两种等价
def up(n):
if n == 0:
return 1
if n == 1:
return up(n -