乘积数组

    技术2022-07-16  67

    题目描述: 给定一个数组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];)

    分析: B[0]、B[n-1] 一个for循环单独处理。 其他不乘A[i],if语句判断一下。 代码:

    public class multiplyArray { public int [] multiply(int [] A){ int len = A.length; int [] B = new int [len];

    for (int i = 0; i < B.length; i++) { B[i] = 1; } for (int i = 0; i < len; i++) { B[0] *= A[i]; if(i <= len - 2 ){ B[len - 1] *= A[i]; } } for(int i = 1; i <= len - 2; i++){ for(int j = 0; j < len; j++){ if(i != j) { B[i] *= A[j]; } } } return B; }

    }

    Processed: 0.015, SQL: 9