题目:超级楼梯
思路:
从第三格后面开始,可以选择是一步走或者两步走的情况。例如有n层楼梯,若一步走,那有的n-1种情况,而前面已经在直接算出并可以拿来用,若两步走,同理。那么结果无非便是这两者之和。
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int m,t;
for(t=0;t<n;t++){
int num[40]={0},i;
scanf("%d",&m);
num[0]=0;
num[1]=1;
num[2]=2;
if(m>3){
for(i=3;i<m;i++){
num[i]=num[i-1]+num[i-2];
}
}
printf("%d\n",num[m-1]);
}
}
}