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

如何在java中将两个长值相乘

如何在java中将两个长值相乘

墨色风雨 2021-08-13 15:24:32
我试图从数字数组中乘以两个最大的数字。它适用于小数字。正确的输入/输出 - 这是有效的:3 10 2 8 80正确的输入/输出 - 这是失败的:2 100000 900009000000000然而,我的输出是 10000000000。有人能告诉我我的代码有什么问题吗?public static Long sumPairwise(Long[] numbers){        int index=0;        int n = numbers.length;        for(int i=1;i<n;i++){            if(numbers[i]>numbers[index])                    index=i;        }        numbers[n-1]= numbers[index];        index=0;        for(int j=1;j<n-1;j++){        if(numbers[j]>numbers[index])                index=j;        }        numbers[n-2]=numbers[index];        Long product = (numbers[n-2])*(numbers[n-1]);    return product ;}public static void main(String [] args){    Scanner sc = new Scanner(System.in);    int n = sc.nextInt();    Long numbers[] = new Long[n];    for (int i=0;i<n;i++)    numbers[i]= sc.nextLong();    System.out.println(sumPairwise(numbers));}
查看完整描述

3 回答

?
一只名叫tom的猫

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

而不是Long尝试使用BigInteger乘以适合的较大值long,否则您的结果可能会溢出

使用BigDecimal替代浮点数相乘。


查看完整回答
反对 回复 2021-08-13
  • 3 回答
  • 0 关注
  • 150 浏览

添加回答

举报

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