1170: 超级楼梯
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 61 Solved: 18
[ Submit][ Status][ BBS]
Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output
对于每个测试实例,请输出不同走法的数量
Sample Input
2 2 3
Sample Output
1 2 在这一个题目中知道算法有思路才是王道!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include<stdio.h>
int
main()
{
int
i,n,b,a[42];
a[1]=1;
a[2]=2;
scanf
(
"%d"
,&n);
while
(n--)
{
scanf
(
"%d"
,&b);
if
(b==1||b==2||b==3)
{
printf
(
"%d\n"
,b-1);
continue
;
}
for
(i=3;i<=b;i++)
a[i]=a[i-1]+a[i-2];
printf
(
"%d\n"
,a[i-2]);
}
return
0;
}
/**************************************************************
Problem: 1170
User: 12310320214
Language: C
Result: Accepted
Time:0 ms
Memory:916 kb
****************************************************************/
|