Problem Description
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input
输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。
Output
对于每个测试实例,请输出不同走法的数量
Sample Input
2 2 3
Sample Output
1 2分析:第一步可以选择走一级或两级,则M级楼梯的总走法等于M-1级楼梯的走法与M-2级楼梯的走法之和即a[n]=a[n-1]+a[n-2](斐波那契数列)并且int型定义会发生溢出,需要使用long long型定义,vc中用_int64上代码:#include<stdio.h> _int64 a[39]; int main() { int x,i; a[0]=1; a[1]=2; for(i=2;i<39;i++) a[i]=a[i-1]+a[i-2]; scanf("%d",&i); while(i--) { scanf("%d",&x); printf("%I64d\n",a[x-2]); } return 0; }