假设有n阶楼梯,每次可爬1阶或2阶,则爬到第5层有几种方案,第9层呢?第n层呢?(要求:输入层数n,输出相应方案个数)
上到第三层时可以从第一层跨两节,也可以从第二层跨一节,所以第三层方法数等于一,二层之和,以此类推。
int f(int x);
int main()
{
int x,y;
printf("输入层数:");
scanf("%d",&x);
y=f(x);
printf("方法数:%d",y);
}
int f(int x)
{
int y;
if(x==1)
y=1;
else
{
if(x==2)
y=2;
else
y=f(x-1)+f(x-2);//上到第三层时可以从第一层跨两节,也可以从第二层跨一节,所以第三层方法数等于一,二层之和,以此类推。
}
return y;
}