1. 用循环,不用递归;
public int Fibonacci(int n) {
int fib0=0,fib1=1,fib2=1;
if(n==0) return fib0;
if(n==1) return fib1;
for(int i=2;i<=n;i++){
fib2=fib0+fib1;
fib0=fib1;
fib1=fib2;
}
return (fib2);
}
2. 变态跳台阶问题,f(n)=f(n-1)+f(n-2)+...+f(n-n)=2^(n-1);
import java.lang.Math;
public class Solution {
public int JumpFloorII(int target) {
if(target<=0) return 0;
int answer=(int)Math.pow(2,target-1);
return answer;
}
}