欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

超级楼梯HDOJ2041

发布时间:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 超级楼梯HDOJ2041 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

超级楼梯


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 71555    Accepted Submission(s): 36480


Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output 对于每个测试实例,请输出不同走法的数量
Sample Input 2 2 3
Sample Output 1 2
Author lcy

先找几组数据找规律发现:

M      走法

1   0

2   1

3   2
4   3
5   5

6   8

当M大于等于4的时候每一项都是前第一项和前第两项的和于是:

#include <iostream>
#include <iomanip>
#include <stdio.h>




using namespace std;





int func (int m)
{
    int data[500]={0,0,1,2};
    if(m==1)
        return 0;
        if(m==2)
            return 1;
        if(m==3)
            return 2;


    for(int i=4;i<=m;i++)
    {
        data[i]=data[i-1]+data[i-2];
    }




    return data[m];


}






int main ()
{


int n;
while(cin>>n)
{
    int data[50];


    if(n>=1&&n<=40)
    {
          for(int i=1;i<=n;i++)
    {
        cin>>data[i];


    }




    for(int i=1;i<=n;i++)
    {
        cout<<func(data[i])<<endl;


    }




    }


}




    return 0;


}














总结

以上是生活随笔为你收集整理的超级楼梯HDOJ2041的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。