问题描述
青蛙跳台阶一次只能跳一阶或者一次跳两阶,现有n阶台阶问青蛙有几种跳法?
解题思路
用递归的方法去思考,如果台阶只有一阶那就一种跳法,两阶就有两种跳法,如果有三阶的话我们可以假设青蛙先跳了一阶,还有两阶没跳,两阶就有两种或者先跳两阶再跳一阶所以总共有三种跳法,那我们可以这么理解总共n阶最后可以跳一阶或者两阶,那么总次数就是f(n-1)+f(n+1)
代码实现
#include<stdio.h>
int jump(int x)
{
if (x <= 2)
{
return x;
}
if (x > 2)
{
return jump(x - 1) + jump(x - 2);//递归调用
}
}
int main()
{
int n = 0;
scanf("%d", &n);//输入有多少层台阶
printf("%d", jump(n));
return 0;
}