斐波那契递归与非递归

斐波那契:

F(0) = 0;

F(1) = 1;

F(n) = F(n - 1) + F(n - 2); n >= 2

递归:

int Fib(int n) {
    if (n == 0 || n == 1) {
        return n;
    }
    else {
        return Fib(n - 1) + Fib(n - 2);
    }
}

非递归:

int Fib(int n) {
    int a[n + 1];
    int i;
    a[0] = 0;
    a[1] = 1;
    if (n >= 2) {
        for(i = 2; i <= n; i++) {
            a[i] = a[i - 1] + a[i - 2];
        }
    }
    return a[n];
}

 

你可能感兴趣的:(斐波那契递归与非递归)