斐波那契数列的改进求法
最初的斐波那契数列:
// 初版斐波契
public int fib(n){
if(n == 0){
return 0;
}
if(n == 1){
return 1;
}
return fib(n-1)+fib(n-2);
}
可以看出,当数字很小的时候还好,但是一旦数字变大,那么在递归的过程中就需要不断的重复累加而我们是可以将其改进的;结合动态规划的思想;
设置一个变量对结果进行存储;
// 动态规划思路解决斐波那契
public int fib(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
long pre = 0;
long cur = 1;
for (int i = 2; i <= n; i++) {
long sum = pre + cur;
pre = cur;
cur = sum;
}
return (int)sum;
}