0

我试图弄清楚为什么这段代码不起作用。我正在尝试获取 Pythagoreum 三元组,1-500其中输出值是不同的。

当我尝试编译时,我收到一条错误消息

错误:二元运算符的操作数类型错误。

我究竟做错了什么?

public class Pythagoras {

    public static void main(String[] args) {
        int side1;
        int side2;
        int hypotenuse;
        for(side1 = 1; side1 <= 500; side1 ++)
            for(side2 = 1; side2 <= 500; side2 ++)
                for(hypotenuse = 1; hypotenuse <= 500; hypotenuse ++)
                    if(side1 < side2 < hypotenuse)
                        if((side1 * side1) + (side2 * side2) == (hypotenuse * hypotenuse))
                            System.out.printf(%d %d %d\n, side1, side2, hypotenuse);

    }

}
4

1 回答 1

1

有几个问题需要解决:

  1. 空格不应将一元运算符(例如递增(“++”)和递减(“--”)与其操作数分开。
  2. a < b < c是一个无效的语句,你需要使用(a < b && b < c)

您还可以通过简单地更新您的 for 循环来摆脱比较 ( side1 < side2 < hypotenuse),如下所示。

更新的实现:

public class Pythagoras {

    public static void main(String[] args) {
        int side1;
        int side2;
        int hypotenuse;
        for(side1 = 1; side1 <= 500; side1++)
            for(side2 = side1+1; side2 <= 500; side2++)
                for(hypotenuse = side2+1; hypotenuse <= 500; hypotenuse++)
                    if((side1 * side1) + (side2 * side2) == (hypotenuse * hypotenuse))
                        System.out.printf("%d %d %d\n", side1, side2, hypotenuse);

    }


}
于 2018-10-07T15:56:04.643 回答