题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
根据前面两题的解题思路,我们可以知道这类题就是要根据题意推导出数学公式。用表示青蛙跳上 n 阶台阶的跳法数:
当 n = 1 时,只有一种跳法,即 1 阶跳:。
当 n = 2 时,有两种跳的方式,1 阶跳和 2 阶跳:。
当 n = n 时,共有 n 种跳的方式,第一次跳出 1 阶后,后面还有种跳法;第一次跳出 2 阶后,后面还有种跳法 ……… 第一次跳出 n 阶后,后面还有种跳法。
所以 又因为 所以两式相减得
代码实现
import java.util.Scanner;
public class Problem9 {
public static int JumpFloorII(int target) {
if (target == 1)
return 1;
if (target == 2)
return 2;
return 2*JumpFloorII(target-1);
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
System.out.println(JumpFloorII(n));
}
}