hdu 2041 超级楼梯

来源:互联网 发布:java我的世界内存占用 编辑:程序博客网 时间:2024/04/29 11:12
Problem Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
 

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

Output
对于每个测试实例,请输出不同走法的数量
 

Sample Input
223
 

Sample Output
12
依旧是推出公式,递推运用
a[1]=0
a[2]=1;
a[3]=2;
从 4开始 a[n]=a[n-1]+a[n-2];
#include<stdio.h>  int main()    {    int n;      scanf("%d",&n);        while(n--)  {  int m;  int i,j;  int s,t;  scanf("%d",&m);if(m==1)  { printf("0\n");continue;}if(m==2)  { printf("1\n");continue;}if(m==3)  { printf("2\n");continue;}   s=1;t=2;   j=0;         for(i=4;i<=m;i++)    {   j=s+t;         s=t;         t=j;        } printf("%d\n",j);  }   return 0;    } 

0 0