“青蛙跳台阶”是一个经典的动态规划问题,通常描述为:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。
青蛙跳上第n
级台阶的方法数等于它跳上第n-1
级台阶的方法数(再跳一级上去)加上它跳上第n-2
级台阶的方法数(再跳两级上去)。递归的基本情况是:当n=1
时,有一种方法;当n=2
时,有两种方法。
int steps(int n)
{
if (n <= 3)
{
return n;
}
else
{
return steps(n - 1) + steps(n - 2);
}
}
int main()
{
int n;
scanf("%d", &n);
printf("需要跳:%d次\n", steps(n));
return 0;
}