【发布时间】:2021-11-27 13:28:41
【问题描述】:
我将整数 inputList 输入为 [1, 2, 3, 4],并希望 outputList 为 [24, 12, 8, 6]。逻辑如下:
outList[0] = inList[1]*inList[2]*inList[3]
outList[1] = inList[0]*inList[2]*inList[3]
outList[2] = inList[0]*inList[1]*inList[3]
.
.
outList[n] = inList[0]*inList[1]*...*inList[n-1]
Catch here 是在不使用嵌套循环的情况下实现这一点。我知道如何使用嵌套循环来做到这一点。 请提出一种方法来做到这一点。
【问题讨论】:
-
我不确定我是否理解其中的逻辑。
outList[n]是除inList[n]之外的所有inLists 的乘积吗? -
不是求和,而是 inList 元素的乘积。
-
提示/解决方案:只需计算一次所有数组元素的乘积并将该数字保存为
totalProduct。然后可以通过简单的outlist[x] = totalProduct / inList[x]计算outList[x]的值 -
@rexD,输入数组是否足够好,不会包含 0 或太多/太大的数字导致整数溢出?
-
输入数组可能包含也可能不包含 0,但整数溢出是一个有效的问题。暂时如果我们忽略溢出问题,那么@OHGODSPIDERS 提供的解决方案看起来不错。可以处理除以0。
标签: java arrays arraylist multiplication