如果两个边的总和大于第三个,则三个数字构成一个合法的三角形。因此,[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/

10-10 22:29