在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
谢谢!
在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
谢谢!
我想到了!我使用 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);
谢谢你们!
暗示:
1) 遍历数组并找到最大值
2) 将最大值除以 MAX_VALUE (您可能需要注意用于捕获/存储该值的数据类型)。取此值的上限。**
3) 用第2步得到的值减去数组中的每个元素
** 如果您不想或不能使用数学库,那么您很容易定义自己的上限函数。