题目如下:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
1,解题思路,假设只有一个台阶或者有两个台阶,算一下有几种跳法,然后从中找他们之间的联
假设台阶很少,计算有多少种跳法
假设的台阶数 计算的跳法数 1 个 1 种 2 个 2 种
3 个
3 种4 个
5 种 5 个 8 种由上图可知f(n) = f(n - 1) + f(n - 2)
#include <stdio.h>
int JumpFloor(int num)
{
if (num <= 1)
return 1;//递归出口
else
return JumpFloor(num - 2) + JumpFloor(num - 1);//递归调用函数本身
}
int main()
{
printf("%d", JumpFloor(4));//打印出来
return 0;
}
升级版的青蛙跳台阶问题:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
方法和上面方法相同,
假设台阶很少,计算有多少种跳法
| 假设的台阶数 | 计算的跳法数 |
| 1 个 |
1种 |
| 2 个 | 2种 |
|
3 个 |
4种 |
|
4 个 |
8种 |
| 5 个 |
16 |
博客围绕青蛙跳台阶问题展开,普通问题是青蛙一次可跳1级或2级台阶,求跳上n级台阶的跳法,通过假设少台阶情况找出规律f(n) = f(n - 1) + f(n - 2);还提及升级版问题,青蛙一次可跳1到n级台阶,同样用假设少台阶的方法求解。
315

被折叠的 条评论
为什么被折叠?



