您的位置:首页 > 其它

超级楼梯

2017-01-21 18:01 302 查看

                                                                                       超级楼梯
                                                   Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)           
                                                             Total Submission(s) : 2   Accepted Submission(s) : 1
[align=left]Problem Description[/align]
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
 

[align=left]Input[/align]
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
 

[align=left]Output[/align]
对于每个测试实例,请输出不同走法的数量
 

[align=left]Sample Input[/align]

2
2
3

 

[align=left]Sample Output[/align]

1
2思路:n<=2的时候,直接得到,n>2的时候:状态转移方程:f
=f[n-1]+f[n-2] 可看作n-1时候再加一层楼梯与n-2时候再加2层楼梯
#include <iostream>
#include<cstdio>
using namespace std;
int str[45]={0,0,1,2};
void s()
{
for(int i=4;i<=42;i++)
str[i]=str[i-1]+str[i-2];
}
int main()
{    s();
int n,T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
printf("%d\n",str
);
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递推