首页 > 试题广场 >

爬楼梯

[编程题]爬楼梯
  • 热度指数:17712 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。
请问计算出你可以采用多少种不同的方式爬完这个楼梯。

输入描述:
一个正整数n(n<=100),表示这个楼梯一共有多少阶


输出描述:
一个正整数,表示有多少种不同的方式爬完这个楼梯
示例1

输入

5

输出

8
需要自己找到上楼梯次数的规律
阶梯:1,2,3,4,5,6,
需要的次数:1,2,3,5,8,13
规律为第n梯需要的步数为(n-1)梯的步数加上(n-2)梯的步数
另外,改题会验证大量的步数,对内存要求特别高,需要导入了一个lru_cache
import sys
from functools import lru_cache
@lru_cache
def work(n):
    if n ==1 or n == 2:
        return n
    else:
        return work(n-1) + work(n-2)
for line in sys.stdin:
    a = line.strip("\r\n")
    res = work(int(a))
    print(res)

发表于 2022-11-26 19:20:07 回复(0)