Cree una variedad de productos
Requisitos de la asignatura:
Dada una matriz A [0,1,…, n-1], construya una matriz B [0,1,…, n-1], donde el elemento B en B [i] = A [0] ∗ A [1] ∗ ... ∗ A [i - 1] ∗ A [i + 1] ∗ ... ∗ A [n - 1]. No se puede utilizar la división. (Nota: Se estipula que B [0] = A [1] ∗ A [2] ∗ ... ∗ A [n - 1], B [n - 1] = A [0] ∗ A [1] ∗ ... ∗ A [n - 2];) B [i] = A [0] * A [1] * ... * A [i-1] * A [i + 1] * ... * A [n- 1]. No se puede utilizar la división. (Nota: Se estipula que B [0] = A [1] * A [2] * ... * A [n-1], B [n-1] = A [0] * A [1] * ... * A [n-2];)B [ i ]=A [ 0 ]∗A [ 1 ]∗. . .∗A [ i-1 ]∗A [ i+1 ]∗. . .∗A [ n-1 ] . No es capaz de hacer uso de otro método . ( Nota sobre el significado : Conjunto de reglamentación B [ 0 ]=A [ 1 ]∗A [ 2 ]∗. . .∗A [ n-1 ] ,B [ n-1 ]=A [ 0 ]∗A [ 1 ]∗. . .∗A [ n-2 ] ;)
En el caso de que la longitud de A sea 1, B no tiene sentido y no se puede construir, por lo que esta situación no existirá.
Ejemplo:
A = [1,2,3,4,5],
B = [120,60,40,30,24]
análisis:
B [0] = 120 = A [1] * A [2] * A [3] * A [4]
B [1] = 60 = A [0] * A [2] * A [3] * A [ 4]
B [2] = 40 = A [0] * A [1] * A [3] * A [4]
…
Resumen: Los elementos en B [i] son iguales a los elementos en A excepto A [i] producto
Código:
public class multiply {
public static void main(String[] args){
int [] arr = {
1,2,3,4,5};
int [] arrM = multi(arr);
printarr(arrM);
}
public static int[] multi(int [] arr){
int len =arr.length;
int[] ret = new int[len];
for (int i=0;i<len;i++){
ret[i]+=1;
for (int j=0;j<len;j++){
if (i!=j){
ret[i]*=arr[j];
}
}
}
return ret;
}