小乐乐上台阶,一共有n个台阶,小乐乐腿长一次可以上1个台阶或者2个台阶,请问小乐乐有多少种方法上n个台阶?
我们第一次看到这样的题的时候一般都会很懵逼不知道怎么做,那我们先列几种情况看看规律,
我们仔细观察可得我们设n为n个台阶的方法数则
除了n<=2,以外的都符合n=(n-1)=(n-2).
这个表达式不就是和斐波数列的原理差不多嘛,
所以我们可以利用斐波数列的方式来写出:(a=第一项的方法,b=第二项)
#include <stdio.h>
int main()
{
int n=0;
while (scanf("%d", &n) != EOF)
{
int i = 0;
int a =1;
int b =2;
int c =0;
if(n>2)
{
for(i=1;i<=n-2;i++)
{
c =a+b;
a = b;
b= c ;
}
printf("%d\n", c);
}
else
{
printf("%d\n",n);
}
}
return 0;
}