hdu2041超级楼梯
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。Output对于每个测试实例,请输出不同走法的数量
Sample Input2 2 3
Sample Output1 2
斐波拉契
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6 #include<cmath> 7 #include<cstring> 8 using namespace std; 9 const int maxn=1e6+5; 10 const int INF=1e9+7; 11 int n,f[50],m; 12 template <class t>void red(t &x) 13 { 14 x=0; 15 int w=1; 16 char ch=getchar(); 17 while(ch<'0'||ch>'9') 18 { 19 if(ch=='-') 20 w=-1; 21 ch=getchar(); 22 } 23 while(ch>='0'&&ch<='9') 24 { 25 x=(x<<3)+(x<<1)+ch-'0'; 26 ch=getchar(); 27 } 28 x*=w; 29 } 30 void input() 31 { 32 freopen("input.txt","r",stdin); 33 } 34 int main() 35 { 36 //input(); 37 red(n); 38 f[1]=1; 39 f[2]=1; 40 for(int i=3;i<=40;++i) 41 f[i]=f[i-1]+f[i-2]; 42 while(n--) 43 { 44 red(m); 45 printf("%d\n",f[m]); 46 } 47 return 0; 48 }