HDU -> ACM ->超级楼梯
程序员文章站
2022-04-18 12:13:57
...
Problem Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output
对于每个测试实例,请输出不同走法的数量
Sample Input
2
2
3
Sample Output
1
2
Author
lcy
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[40];
int i;
a[0] = 1; //二层
a[1] = 2; //三层
for(i = 2; i < 40; i++)
{
a[i] = a[i - 1] + a[i - 2]; //第n阶楼梯走法为(n - 1)阶楼梯 走法+ (n - 2)阶楼梯走法
}
int n;
scanf("%d", &n);
while(n--)
{
int stair;
scanf("%d", &stair);
printf("%d\n", a[stair - 2]);
}
return 0;
}
简单的动态规划问题:注意到每增加一层楼梯,那么登上这层楼梯的方法有两种:1.从比他少一阶的楼梯往上走一步
2.从比他少两阶的楼梯往上走两步
入果要求第n阶楼梯的走法,那么我们只需知道(n-1)和(n -2)阶楼梯所有的走法即可,以此类推;
我们只需直到第二阶楼梯和第三阶楼梯的走法就能推出剩下楼梯走法啦~(类似于斐波那契数列)
推荐阅读
-
【表格】大于号转义符>---小于号转义符<
-
Contest100000569 - 《算法笔记》2.5小节——C/C++快速入门-&amp;gt;数组
-
python如何提取js 内容 及遇到html转义符如何自动转义(pythoh3 ''&lt;abc&gt;' )
-
HTML转义字符,HTML字符实体< >: &
-
HTML<script>标签
-
C#List<T>排序多权重、自定义
-
.Net Core中使用ref和Span<T>提高程序性能
-
安装fc17后,mysql启动错误问题解决<转>
-
<转>mysql对于大表(千万级),要如何优化呢
-
MyBatis中 <sql>标签和<include>标签