我有一个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