小乐乐要走n个台阶,一次只能走一步或两步,有几种走法?
这个问题其实和斐波那契数列是一样的原理。
int fib(int n)
{
if (n <= 2)//当n等于1的时候就只有一种走法,等于2的时候只有两种走法,所以直接返回n就好了
return n;
else
return fib(n - 1) + fib(n - 2);//刚开始走的时候只有两种走法:走一步或走两步
//设fib(n)为求走法的函数
//当刚开始走了一步,剩下的台阶就有fib(n-1)种走法,走两步,剩下的就有fib(n-2)种走法
//将两者相加,就是全部的走法。
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d", fib(n));
return 0;
}