public static int Fab(int n){
if (n == 0) {
return 0;
}
if(n == 1) {
return 1;
}
return Fab(n-1)+Fab(n-2);
}
解题思路二:
从下往上计算,使用循环(递归重复计算太多)。
public static int Fab2(int n){
if (n == 0) {
return 0;
}
if(n == 1) {
return 1;
}
int first =0;
int second =1;
int fib=0;
for (int i =2;i<=n;i++){
//向左边平移,自动累加到结束的点。
fib = first +second;
first = second;
second =fib ;
}
}