为了账号安全,请及时绑定邮箱和手机立即绑定

最大成对乘积 Java

最大成对乘积 Java

慕哥6287543 2021-12-01 19:14:56
我编写了获取最大成对乘积的方法,但是当我使用输入 100000 和 90000 测试方法时,我无法获得长值。我得到结果 410065408。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));}
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

在这里你只是投射结果

long res = (long)(numbers[index1] * numbers[index2]);

所以它会在进行乘法时溢出整数

long res = ((long)numbers[index1] * numbers[index2]);


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信