斐波那契数列的优化

复杂度:2^n

int f(int n)
{
 if(n==1) return 1;
 else if(n==2) return 1;
 else 
 return f(n-1)+f(n-2);
 }
 

优化:
思路一:memoiazation 记忆
将已经计算过的实例制表查备;

int Fibonacci(int n)
{
    if(n<=0)
        return 0;
    else if(n==1)
        return 1;
    else
    {
        //动态创建一个长度为(n+1)的数组
        int *arr=new int[n+1];
        arr[0]=0;
        arr[1]=1;
        for(int i=2;i<=n;i++)
        {
            arr[i]=arr[i-1]+arr[i-2];
        }
        int result=arr[n];

        delete [] arr;
        return result;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_41932111/article/details/89788415