编程题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。
解题思路-->假设:当 n =0 ,时 f(0) = 0;
n =1 ,时 f(1) = 1;
n =2,时 f(2) = 2;
n =3,时 f(3) = 3;分析一次跳完:没有跳法,两次跳完 :1种,三次跳完:一种
n=4,时 f(4) = 5;分析一次跳完:没有跳法,两次跳完: 1种,三次跳完:3种,四次跳完:1种
n=5,时 f(5) = 8;分析一次跳完:没有跳法,两次跳完 :没有,三次跳完:6种(122,212,221);四次跳完:(1211,1121,1112,2111),五次跳完:1种
发现规律:f(3) = f(1)+f(2),f(4) = f(3)+f(2),f(5)=f(4)+f(3)--->f(n)=f(n-1)+f(n-2)
编程设计:
public class Solution {
public int JumpFloor(int n) {
int former1 = 1;
int former2 = 2;
int target = 0;
if(n == 0 ) {
return 0;
}
if(n == 1 ) {
return 1;
}
if(n == 2 ) {
return 2;
}else {
for(int i = 3;i <= n;i++) {
target = former1 + former2;
former1 = former2;
former2 = target;
}
return target;
}
}
}