题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解答:
1.设置一个全局变量time默认为零,模拟跳的过程,当跳到最终台阶的时候time加一。此方法耗时长。
public class Q_8 {
public int time=0;
public int JumpFloor(int target) {
Jump(target);
return time;
}
public void Jump(int target) {
if(target==1){
time++;
}else if(target==2){
time++;
Jump(1);
}else {
Jump(target-1);
Jump(target-2);
}
}
public static void main(String[] args) {
System.out.println(new Q_8().JumpFloor(3));
}}
2.类似斐波那契数列
思想:n个台阶的跳法=n-1个台阶的跳法+n-2个台阶的跳法
public class Q_8 {
public int JumpFloor(int target) {
if(target <= 2){
return target;
}
int pre2 = 1, pre1 = 2;
for (int i = 3; i <= target; i++){
int cur = pre2 + pre1;
pre2 = pre1;
pre1 = cur;
}
return pre1;
}}

京公网安备 11010502036488号