Python入门爬楼梯

爬楼梯

假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1 级或者 2 级,那么你有多少种方法爬到楼梯的顶部?

输入格式

第一行输入一个整数 n(1n50) ,代表楼梯的级数。

输出格式

输出爬到楼梯顶部的方法总数。

样例输入

5

样例输出

8

难点:在利用动态规划过程中,重复计算过多


解决方法:利用列表存储当前计算结果,避免重复计算


代码(Python3+):

def test(num):
    global l
    if num==0 or num==1:
        return 1
    if num>1:
        if l[num-2]==0:
            l[num-2] = test(num-2)
            return test(num-2) + test(num-1)
        return test(num-1)+l[num-2]
    return 0
num = int(input())
l = [int(k-k) for k in range(num)]
print(test(num))

你可能感兴趣的:(Python)