主要思路:
定义C[i] = A[0]*A[1]*....A[i-1],自上而下求C[i] , C[i] = C[i-1] *A[i-1]
定义D[i] = A[i+1]*A[i+2]*...A[n-1] ,自下而上求D[i], D[i] = D[i+1] *A[i+1]
void multiply (const vector<double>& array1, vector<double> & array2)
{
int length1 = array1.size();
int length2 = array2.size();
if(length1 == length2 && length2 < 2)
{
array2[0] =1;
for(int i = 1; i< length1; ++i)
{
array2[i] = array2[i-1] * array1[i-1];
}
double temp = 1;
for(int i = length1-2; i >= 0; --i)
{
temp *= array1[i+1];
array2[i] *= temp;
}
}
}