递归:青蛙跳台阶讲解

mac2025-08-04  1

1.递归的介绍

递归是一种分治思想,分层而治,一层一层的进行下去,递归是在编程学中非常是非常重要的,它不是最好的方法,但它却是最好方法的基础。

2.例题讲解

下面我们以一道例题作为讲解: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 我们首先来讲解一下这道题: A.n = 1时,我们只需要跳1次,就是一次跳1个台阶。 B.n = 2时,有俩种情况: 第一种情况就是直接跳2个 第二种情况就是第一次跳一个,第二次再跳一个 那么我来细讲一下当n = 3时, 假设第一次跳1个台阶,那么就剩下了2个台阶,剩下的2个台阶就可以用B中的方法进行计算了。 如果第一次跳2个台阶,那么就剩下1个台阶了,我们就可以用A的方法继续计算。 以此往下类推,形成了一层层的效果。 所以当为n阶台阶的时候,跳台阶的总次数为(n-1)+(n-2) 这里的(n-1)代表跳了1个台阶后剩下n-1个台阶的总次数,再要计算n-1个台阶的总次数自然而然就是(n-3)+(n-2),同理一直往下推。

3.代码展示

package Recursion; import java.util.Scanner; /** * 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法 * (先后次序不同算不同的结果)。 * n = (n - 1) + (n- 2) */ public class Frog { //构造函数 public int f(int n){ if (n == 1){ return 1; } else if (n == 2) { return 2; } return f(n - 1) + f(n - 2);//返回值 } public static void main(String[] args) { //循环,可持续输入数据 while (true) { //创建对象 Frog f = new Frog(); System.out.println("请输入台阶数:"); //键盘输入台阶数 int n = new Scanner(System.in).nextInt(); System.out.println(f.f(n)); } } }

4.总结

这道题其实和斐波那契数列是有相似之处的,只不过斐波那契前俩位是1和1,而这道题是1和2,基本上思路都是一致的,如果有什么不懂可以联系作者。

最新回复(0)