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];
}
}