斐波那契序列的递归和非递归实现方法

/递归形式的斐波那契数列  
int fibonacciRecursion(int n)  
{  
    if (n == 1 || n ==2)  
    {  
        return 1;  
    }  
    if (n > 2)  
    {  
        return fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);  
    }  
}  
  
//非递归形式的斐波那契数列  
//用一个数组作为辅助的空间  
//效率较高  
int fibonacci(int n)  
{  
    int temp[2];  
    temp[0] = 1;  
    temp[1] = 1;  
  
    if (n == 1 || n == 2)  
    {  
        return 1;  
    }  
    else  
    {  
        for (int i = 2; i < n; i ++)  
        {  
            int tp = temp[0] + temp[1];  
            temp[1] = temp[0];  
            temp[0] = tp;  
        }  
        return temp[0];  
    }  
}  

非递归的格式效率要高于递归的效率。

你可能感兴趣的:(斐波那契序列的递归和非递归实现方法)