1 題目及要求
1.1 題目描述
給定數組A[0, 1, 2, ......, n-1],請構建數組B[0, 1, 2, ......, n-1],其中B中的元素B[i]=A[0]×A[1]×A[2]×......×A[i-1]×A[i+1]×......×A[n-1]。
2 解答
2.1 代碼
void multiply(const double *v, int vn, double *out){
if(!(v && out && 0<vn)) return;
out[0] = 1;
for(int k1(1);k1<vn;++k1) out[k1] = out[k1-1]*v[k1-1];
double tmp =1;
for(int k1(vn-1);-1<k1;--k1){
out[k1] *= tmp;
tmp *= v[k1];
}
}