题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
1,用递归,将问题转换为f(n)=f(n-1)+f(n-2);
2,用迭代,原理类似
代码实现
/** * */
package 递归和循环;
/** * <p> * Title:JumpFloor * </p> * <p> * Description: * </p> * * @author 田茂林 * @data 2017年8月23日 上午11:31:34 */
public class JumpFloor {
public int IntJumpFloor(int target) {
if(target==1){
return 1;
}
if(target==2){
return 2;
}
int num =0;
if(target>2){
num = IntJumpFloor(target-1)+IntJumpFloor(target-2);
}
return num;
}
//==============================================迭代版本
public int IntJumpFloorSuper(int target) {
if(target==1){
return 1;
}
if(target==2){
return 2;
}
int before =2;
int beforeagain =1;
int end =0;
for (int i = 3; i <=target; i++) {
end = before+beforeagain;
beforeagain = before;
before = end;
}
return end;
}
}