1、递归求解: 青蛙每跳一次前,有这样三种情况: (1)只剩 1 级或 0 级台阶了,只能跳一步或者无法再跳了,那么这条路也走到了终点,走法的种类数可以加 1; (2)可以走 2 级台阶; (3)可以走 1 级台阶。 于是递归方法求解: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * 递归方法 */ public static int calc
Fun(4) 一样的解题思路: 当青蛙选择跳1步时,那么台阶就还剩3个,问题不就又转化为:求3个台阶有多少种跳法。Fun(3) 可是这样还不够啊,青蛙也有可能一开始就跳两步, 当青蛙一开始就跳2步,那么台阶就还剩2个,问题不就又转化为:求2个台阶有多少种跳法。Fun(2) 所以,Fun(4) = Fun(3) + Fun(2) 看...
1. 跳1级,再跳1级,再跳1级。(1+1+1) 2. 跳1级,再跳2级。(1+2) 3. 跳2级,再跳1级。(2+1) 所以,当 n = 3 时,总共有 3种跳法。 规律是什么? 我们可以发现,青蛙跳到第 \( n \) 级台阶的跳法数,取决于它跳到前两级台阶的跳法数: 1. 如果青蛙最后一步跳 1级,那么它之前一定是从...
一种是青蛙在第n-1个台阶跳一个台阶,那么青蛙完成前面n-1个台阶,就有f(n-1)种跳法,这是一个子问题。 另一种是青蛙在第n-2个台阶跳两个台阶到第n个台阶,那么青蛙完成前面n-2个台阶,就有f(n-2)种情况,这又是另外一个子问题。 两个子问题构成了最终问题的解,所以当n>=3时,青蛙就有f(n)=f(n-...
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 要求:答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n …
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。(若n=0,则有1种) 二、问题分析 1、首先,设一共有f(n)种跳法 2、其次: ①当n=0时,默认有一种跳法,f(0)= 1 ②当n=1时,青蛙可以用跳1级台阶的方式跳,一共有1种跳法,f(1) = 1 ...
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例1: 输入:n = 2 输出:2 示例2: 输入:n = 7 输出:21 示例3: 输入:n = 0 输出:1 ...
问题一: 一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法。 我们来分析一下: 当n等于1的时候,只需要跳一次即可,只有一种跳法,记f(1)=1 当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=...
对于1阶台阶来说,小青蛙只有1种跳法,就是向上跳1级;对于2阶台阶来说,小青蛙有2种跳法,分别是:向上跳1级然后再跳1级 & 直接向上跳2级;对于3阶台阶来说,小青蛙有3种跳法,分别是:执行3次1级跳 & 直接向上跳2级再跳1级 & 先跳1级然后直接向上跳2级;对于4阶台阶来说,小青蛙有5种跳法,...
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例1 输入:n = 2 输出:2 示例2 输入:n = 0 输出:1 提示 0 <= n <= 100 ...