斐波那契数列的非递归

int func(int n){
    if (n ==0)
        return 0;
    if (n == 1)
        return 1;
    int p = 0;
    int q = 1;
    for (int i = 1; i < n; i++){
        int tmp = p;
        p = q;
        q = tmp + p;
    }
    return q;
}

 还有一种方法是使用一个全局数组来保存递归中已经计算过的数

int func(int n){
 int memo[n+1];
 fib(n);
}

int fib(int n){
if (n <= 1){
  return n;  
}  
if (memo[n] != 0)
return memo;
}
return memo[n] = fib(n-1) + fib(n-2);
原文地址:https://www.cnblogs.com/yxzfscg/p/4420813.html