思路:
写这道题首先应该想到的是递推思想,找到规律之后就可以迅速解决问题。然后发现第一层台阶方法为1,a[1]=1;同理a[2]=2; a[3]=a[2]+a[1]。
但由于题目的原因解题,我把:a[1]=0;a[2]=1;a[3]=2·······因此我的结果方法输出就无需减1,这个在代码中可以得到。
因此这个规律也就是斐波那些数列的规律:a[n]=a[n-1]+a[n-2];
解题代码:
#include <stdio.h>
int main() {
int n, i, m, a[45];
while(scanf("%d", &n) != EOF) {
a[1] = 0;
a[2] = 1;
a[3] = 2;
for(i=4; i<=40; i++)
a[i] = a[i-1] + a[i-2];
for(i=0; i<n; i++) {
scanf("%d", &m);
printf("%d\n", a[m]);//这里体现
}
}
return 0;
}