下面要给大家分享的是和数组有关的内容,具体内容为构建乘积数组的思路和代码实现,感兴趣的小伙伴可以来了解一下。
题目:
给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。
注:
规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-1] = A[0] * A[1] * ... * A[n-2];
思路1:
分析:
解释下代码,设有数组大小为5。
对于第1个for循环
第1步:b[0] = 1;
第2步:b[1] = b[0] * a[0] = a[0]
第3步:b[2] = b[1] * a[1] = a[0] * a[1];
第4步:b[3] = b[2] * a[2] = a[0] * a[1] * a[2];
第5步:b[4] = b[3] * a[3] = a[0] * a[1] * a[2] * a[3];
然后对于第2个for循环
第1步
temp *= a[4] = a[4];
b[3] = b[3] * temp = a[0] * a[1] * a[2] * a[4];
第2步
temp *= a[3] = a[4] * a[3];
b[2] = b[2] * temp = a[0] * a[1] * a[4]