我有一個int[]
數組,其中x值(x可以由用戶定義),這些值是1到9之間的隨機整數。現在我想創建另一個數組的值,並且新數組的每個值都是來自另一個數組的所有值的乘積,除了相同的索引。Java - 將數組值乘到另一個數組
因此,例如:
- 數組1:
{4,3,5,7}
- 數組2:
{3*5*7, 4*5*7, 4*3*7, 4*3*5} = {105, 140, 84, 60}
這是我有:
public static int[] multiplyArrayValues (int [] values) {
int array[] = new int[values.length];
for (int y = 0; y < array.length; y++) {
array[y] = 1;
}
/*for (int i = 0; i < array.length; i++) { // wrong
for (int z = 0; z < x; z++) {
if (z != i) {
array[i] = array[i] * values[z];
}
}
}*/
return array;
}
的困難是,我必須避免爲了性能而在循環中循環。這就是爲什麼這一塊被註釋掉了。分割是不允許的。
允許'1'嗎?您不能從乘法結果中「排除」它:{1,1,2,3} => {1 * 2 * 3,1 * 2 * 3,1 * 1 * 3,1 * 1 * 2 } = {6,6,3,2}' –
@SimonKraemer這些數字是隨機的,只是在1到9之間的atm。稍後,負數和/或用戶輸入將被添加。所以是的,1是允許的,即使它在你離開時沒有改變。 – abrjak01