首页 > 试题广场 >

爬楼梯2

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

输入描述:
一个正整数,表示这个楼梯一共有多少阶


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

输入

100

输出

24382819596721629

备注:
注意时间限制
Python直接动规

class MainActivity:

    def main(self):
        # Read the data
        n = int(input())
        # Initialization
        schemes = [1, 1, 2]
        if n < 4:
            print(schemes[n - 1])
            return
        # Traverse
        for _ in range(n - 3):
            schemes.append(schemes[0] + schemes[-1])
            schemes.pop(0)
        print(schemes[-1])


if __name__ == '__main__':
    M = MainActivity()
    M.main()
发表于 2024-09-02 21:21:41 回复(0)