Python入门<1>爬楼梯

爬楼梯

假设你现在正在爬楼梯,楼梯有 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))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值