刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

爬楼
已知楼梯的数量,可以每次走2级或者3级,求不同的走法数
例如:楼梯一共有7级,一共3种方法:2 2 3或者 2 3 2 或者 3 2 2。
时间限制:1000
内存限制:65536
输入
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 50。 最后一行为0,表示测试结束。
输出
不同的走法数,每一行输入对应一行输出
样例输入

7
0

样例输出

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】这是一个经典的动态规划问题,可以使用动态规划算法来解决。我们定义一个数组`dp`,其中`dp[i]`表示楼梯有`i`级时不同的走法数。根据题目,楼梯可以每次走2级或者3级,因此我们可以得到状态转移方程:`dp[i] = dp[i - 1] + dp[i - 2]`,即走法数等于走`i-1`级楼梯的走法数加上走`i-2`级楼梯的走法数。我们可以初始化`dp[1]`为1,`dp[2]`为2,然后依次计算`dp[3]`,`dp[4]`,`dp[5]`等,直到`dp[n]`。最后输出`dp[n]`即可。注意,在输入时,需要判断输入是否为0,如果是0则结束程序。此代码的时间复杂度为O(n),空间复杂度也为O(n),满足题目要求。
创作类型:
原创

本文链接:爬楼 已知楼梯的数量,可以每次走2级或者3级,求不同的走法数 例如:楼梯一共有7级,一共3种方法:2

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share