如果两个边的总和大于第三个,则三个数字构成一个合法的三角形。因此,[7,3,6]和[8,8,8]有效,而[2,6,4]和[8,6,1]无效。我只有3个值的数组。
public boolean isLegalTriangle(double[] lens){
a = lens[0]
b = lens[1]
c = lens[2]
return ( a+b > c && b+c > a && a+c > b )
}
这是我编写的代码。是否可以使用for循环重写它? (对索引进行硬编码似乎很原始)
最佳答案
您可以使用模实现以下目的:
public boolean isLegalTriangle(double[] lens){
int l = lens.length;
for (int i = 0 ; i < l; i++) {
if ( lens[i%l] + lens[(i+1)%l] <= lens[(i+2)%l] ) {
return false;
}
}
return true;
}
您将进行3次迭代:
我= 0
lens[0] + lens[1] <= lens[2]
我= 1
lens[1] + lens[2] <= lens[0]
我= 2
lens[2] + lens[0] <= lens[1]
关于java - Java for循环确定合法三角形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30619928/