簡體   English   中英

二進制運算符的錯誤操作數類型-Pythagoreum三元組

[英]Bad operand types for binary operator - Pythagoreum triples

我試圖弄清楚為什么此代碼無法正常工作。 我正在嘗試獲取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);

    }

}

有幾個問題需要解決:

  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);

    }


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM