欢迎各位点赞👍评论✍收藏⭐
目录
1. 题目
有若干层台阶,一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法
2. 解析
这个问题非常简单
写一个方法来返回青蛙的跳法
Fun( n );
- 当 n == 1 有一层台阶
很明显 Fun( 1 ) == 1,只有一种跳法
- 当 n == 2 有两层台阶
也很明显 Fun( 2 ) == 2,有两种跳法
- 当 n == 3 有三层台阶
也很明显,图解:
- 当 n == 4 有四层台阶
我们先别着急,先想一下青蛙第一次该怎么跳
- 第一次跳 1 层
跳上之后,把第一层看作地面,之后还需要跳 3 层,即 Fun( 3 ),Fun( 3 )已经知道了为 3 种
- 第一次跳 2 层
跳上之后,把第二层看作地面,之后还需要跳 2 层,即 Fun( 2 ),Fun( 2 )已经知道了为 2 种
所以,当 n == 4 时,有 Fun( 2 ) + Fun( 3 ) == 5 种 跳法
- 当 n == n 有 n 层台阶
- 第一次跳 1 层
那后面就还有 (n - 1)层阶台阶,要跳 Fun( n - 1 ) 种
- 第一次跳 2 层
那后面就还有 (n - 2)层阶台阶,要跳 Fun( n - 2 ) 种
所以,有 n 阶台阶时,有 Fun( n - 1 ) + Fun( n - 2 ) 种跳法
3. 代码
import java.util.Scanner;
public class Test {
public static int Fun(int n) {
if(n <= 2) { //判断台阶的数目
return n;
}
return Fun(n - 1) + Fun(n - 2); //进行递归
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int ret = Fun(n);
System.out.println(ret);
}
}
代码很简单,重要的是思想
4. 小结
以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!