【04】青蛙跳台阶问题

青蛙跳台阶问题:

        是一道经典的递归问题,通常用来帮助初学者理解递归的概念。问题描述如下:假设有n个台阶,一只青蛙一次可以跳1个台阶或2个台阶。问青蛙跳上n个台阶有多少种不同的跳法?

这个问题可以通过递归的方式求解。当n等于1时,青蛙只有一种跳法,即跳1个台阶;当n等于2时,青蛙有两种跳法,即跳1个台阶两次或跳2个台阶一次。对于n大于2的情况,青蛙可以选择跳1个台阶或2个台阶。如果选择跳1个台阶,那么还剩下n-1个台阶需要跳,此时问题转化为跳上n-1个台阶的跳法数量;如果选择跳2个台阶,那么还剩下n-2个台阶需要跳,此时问题转化为跳上n-2个台阶的跳法数量。因此,跳上n个台阶的跳法数量等于跳上n-1个台阶的跳法数量加上跳上n-2个台阶的跳法数量。这个过程可以用递归的方式实现。

代码如下:

public class FrogJump {
    public int jump(int n) {
        if (n <= 2) {
            return n;
        }
        return jump(n-1) + jump(n-2);
    }
}

这个代码中的jump方法是一个递归方法,它接受一个整数n作为参数,返回跳上n个台阶的跳法数量。当n小于等于2时,直接返回n,因为此时只有1或2个台阶需要跳,跳法数量已经确定。当n大于2时,返回跳上n-1个台阶的跳法数量加上跳上n-2个台阶的跳法数量,这是递归实现的核心部分。

public static void main(String[] args) {
    FrogJump frogJump = new FrogJump();
    int n = 10;
    int result = frogJump.jump(n);
    System.out.println("跳上" + n + "个台阶的跳法数量为:" + result);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的程序员!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值