[英]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);
}
}
有幾個問題需要解決:
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.