简介
简单来说, 尾递归和使用while循环是差不多的, 编译器会对尾递归函数进行简单的处理,使其性能和while差不多
参考链接
https://www.136.la/tech/show-53755.html
https://blog.csdn.net/cnsword/article/details/3849683
code
class Solution {
public:
int Fibonacci(int n) {
return f(n, 0, 1);
}
int f(int n, int f1, int f2){
if(n == 0) {
return f1;
}else{
return f(n-1, f2, f1+f2);
}
}
};
性能相差很多倍.
class Solution {
public:
int Fibonacci(int n) {
return f(n);
}
int f(int n){
if(n <= 0) {
return 0;
}else if(n==1){
return 1;
}
return f(n-1)+f(n-2);
}
};
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》