MaxPairWiseProductJava
我编写了获得最大两两乘积的方法,但当我测试输入100000和90000的方法时,我无法得到一个长值。我得到结果410065408MaxPairWiseProductJava,java,Java,我编写了获得最大两两乘积的方法,但当我测试输入100000和90000的方法时,我无法得到一个长值。我得到结果410065408 static long getMaxPairwiseProduct(int[] numbers) { int index1 = 0; for (int i = 1; i < numbers.length; i++) { if (numbers[index1] < numbers[i]) i
static long getMaxPairwiseProduct(int[] numbers) {
int index1 = 0;
for (int i = 1; i < numbers.length; i++) {
if (numbers[index1] < numbers[i])
index1 = i;
}
int index2;
if (index1 == 0){
index2 = 1;
}else {
index2 = 0;
}
for (int i = 0; i < numbers.length; i++) {
if(numbers[i]!=numbers[index1] && numbers[index2]<numbers[i]){
index2 = i;
}
}
long res = (long)(numbers[index1] * numbers[index2]);
return res;
}
public static void main(String[] args) {
int[] numbers = new int[2];
numbers[0] = 100000;
numbers[1] = 90000;
System.out.println(getMaxPairwiseProduct(numbers));
}
静态长getMaxPairwiseProduct(int[]个数字){
int index1=0;
对于(int i=1;i 如果(numbers[i]!=numbers[index1]&&numbers[index2]在这里,您只是在铸造结果
long res = (long)(numbers[index1] * numbers[index2]);
因此,在进行乘法运算时,它将溢出整数
long res = ((long)numbers[index1] * numbers[index2]);
在这里,你只是在铸造结果
long res = (long)(numbers[index1] * numbers[index2]);
因此,在进行乘法运算时,它将溢出整数
long res = ((long)numbers[index1] * numbers[index2]);
你需要在乘法之前施放。你需要在乘法之前施放。你只需要施放一面。你只需要施放一面。