如果两条边的总和大于第三条边,则三个数字形成一个合法的三角形。因此 [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 次迭代:
i = 0
lens[0] + lens[1] <= lens[2]
i = 1
lens[1] + lens[2] <= lens[0]
i = 2
lens[2] + lens[0] <= lens[1]
关于Java for循环判断合法三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30619928/