Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 极端算术溢出错误背后的含义_Java - Fatal编程技术网

Java 极端算术溢出错误背后的含义

Java 极端算术溢出错误背后的含义,java,Java,我是Java新手,我想知道在下面的实现中可以做些什么,这样我就不会面临上述问题中的错误 编码问题可在此处找到==> 我的解决办法如下: //您也可以使用导入,例如: //导入java.util.*; //您可以出于调试目的写入stdout,例如。 //System.out.println(“这是一条调试消息”); 导入java.util.ArrayList; 导入java.util.Collections; 导入java.util.List; 类解决方案{ 公共int解决方案(int[]A){

我是Java新手,我想知道在下面的实现中可以做些什么,这样我就不会面临上述问题中的错误

编码问题可在此处找到==>

我的解决办法如下:

//您也可以使用导入,例如:
//导入java.util.*;
//您可以出于调试目的写入stdout,例如。
//System.out.println(“这是一条调试消息”);
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
类解决方案{
公共int解决方案(int[]A){
//用JavaSE8编写代码
布尔isTriangle=false;
List myTriangleList=新建ArrayList();
对于(int i:A){
我的三角形列表。添加(i);
}
Collections.sort(myTriangleList);
for(int i=0;i myTriangleList.get(i+2)){
isTriangle=true;
中断;}
}
if(isTriangle)
返回1;
其他的
返回0;
}
}
但是我得到了以下错误


此代码为%93

例如,如果您测试的3个数字都是整数。MAX_VALUE,则它们表示一个有效的三角形。但是,您的
myTriangleList.get(i)+myTriangleList.get(i+1)>myTriangleList.get(i+2)
测试将返回
false
,因为由于数字溢出,前两个数字相加将得到负和

您可以检查总和是否为负数,在这种情况下,接受3个数字作为三角形:

if (myTriangleList.get(i) > 0 &&
    myTriangleList.get(i+1) > 0 &&
    myTriangleList.get(i+2) > 0 && 
    (myTriangleList.get(i) + myTriangleList.get(i+1) > myTriangleList.get(i+2) ||
   myTriangleList.get(i) + myTriangleList.get(i+1) < 0)) {
    isTriangle = true;
    break;
}
<代码>if(myTriangleList.get(i)>0&& MyTriangalList.get(i+1)>0&& MyTriangalList.get(i+2)>0&& (myTriangleList.get(i)+myTriangleList.get(i+1)>myTriangleList.get(i+2)|| myTriangleList.get(i)+myTriangleList.get(i+1)<0)){ isTriangle=true; 打破 }
编辑:添加了处理负数的条件。

但在这种情况下,类似[-2,-2,-2]的数组也将返回1,这使tests@BurakhanAksoy好的,如果输入可以包含负值,你必须添加另一个测试-如果3个数字中的任何一个是负值,这是一个无效的三元组。