有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
Input2 2 3
1 2
这个题是比较典型的递推。可以慢慢分析一下,对于n级台阶,假设有f[n]种走法,如果最后一步走1级那么剩下n-1级自然有f[n-1]种走法;如果最后一步走2级那么剩下n-2级就有f[n-2]种走法。总结出这个公式:f[n]=f[n-1]+f[n-2];故代码如下:
int main(){
int i,j,n,a,f[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
f[2]=1;f[3]=2;f[4]=3;
for(j=4;j<=40;j++)
{
f[j]=f[j-1]+f[j-2];
}
printf("%d",f[a]);
printf("\n");
}
return 0;
}