问题
一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶,例如:跳上第一级台阶 只有一种跳法:直接跳 1 级即可。跳上两级台阶,有两种跳法: 每次跳 1 级,跳两次; 或者一次跳 2 级.问要跳上第 n 级台阶有多少种跳法?
代码实例
package 递归;
import java.util.Scanner;
public class 青蛙跳台阶 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("可能的结果有"+ frogjump(n) +"种");
}
public static int frogjump(int n){
if (n == 1){
return 1;
}else if (n == 2){
return 2;
}
return frogjump(n-1)+frogjump(n-2); //最后一次可能跳一个也可能跳两个,两次加起来就是所有的可能
}
}
问题延伸
一只青蛙可以一次跳 1 ,2,3,4,,,,,,,i级台阶问要跳上第 n 级台阶有多少种跳法?
package 递归;
import java.util.Scanner;
public class 青蛙跳台阶 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("可能的结果有"+ frogjump(n) +"种");
}
public static int frogjump(int n){
if (n == 1){
return 1;
}else if (n == 2){
return 2;
}else if (n == 3){
...
}
...
...
...
...
...
...
return frogjump(n-1)+frogjump(n-2)+.....+frogjump(n-k);
}
}
哪里不懂了可以评论哦,为您解答