-2

在java中,有谁知道如果一个值达到MAX_VALUE,如何按比例缩小所有数组值以确保所有值都低于MAX_VALUE?

例如:

MAX_VALUE = 11

originalArray has values:
 [0] = 6
 [1] = 20
 [2] = 4

因为 [1] 是 MAX_VALUE-1 的 2 倍,所以我们必须按比例将所有数组值除以 2。所以,

newArray has values:
[0] = 3
[1] = 10
[2] = 2

谢谢!

4

2 回答 2

0

我想到了!我使用 values[i] 来存储数组的新值,而不是 this.values[i]。

我变了:

this.values [0] = (int) (values [0] /  newValue);
this.values [1] = (int) (values [1] /  newValue);
this.values [2] = (int) (values [2] /  newValue);
this.values [3] = (int) (values [3] /  newValue);
this.values [4] = (int) (values [4] /  newValue);

谢谢你们!

于 2013-11-13T05:40:02.017 回答
0

暗示:

1) 遍历数组并找到最大值
2) 将最大值除以 MAX_VALUE (您可能需要注意用于捕获/存储该值的数据类型)。取此值的上限。**
3) 用第2步得到的值减去数组中的每个元素

** 如果您不想或不能使用数学库,那么您很容易定义自己的上限函数。

于 2013-11-13T03:34:50.840 回答