python:猴子爬山问题

一只猴子要爬有20级台阶的山,一次可选择跳1级,或2级,或3级台阶,求上山有多少种不同的方法?
猴子要到第20级台阶,最后一次可选择从第19级跳一级台阶上去,或者从第18级跳2级上去,或者从17级跳3级上去,上山的所有方法就是:从第19级跳的方法+从第18级跳的方法+从17级跳的方法,用f(20)表示上20级台阶的方法,即:fun(20)=fun(19)+fun(18)+fun(17)
,如果有n级台阶就是:fun(n)=fun(n-1)+fun(n-2)+fun(n-3)
代码如下:

def fun(n):
    if n==1:
        return 1
    elif n==2:
        return 2
    elif n==3:
        return 4
    else:
        return fun(n-1)+fun(n-2)+fun(n-3)
num=fun(20)
print(num)

你可能感兴趣的:(经验分享,python)