Я новичок в этом деле, мне было любопытно, смогу ли я написать приведенный ниже код
более эффективно.
Я не могу использовать циклы или условные операторы, только логические операторы. double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[1]);
double c = Double.parseDouble(args[2]);
boolean check = a * a + b * b == c * c || a * a + c * c == b * b
|| b * b + c * c == a * a;
StdOut.println(a > 0 && b > 0 && c > 0 && check);
Я попробовал приведенный ниже код, но возникла проблема: даже если значение (a,b,c) было отрицательным, оно продолжало возвращать значение true для этого аргумента командной строки:(- 3 4 -5) не знаю почему.
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[1]);
double c = Double.parseDouble(args[2]);
boolean check = a > 0 && b > 0 && c > 0 && a * a + b * b == c * c || a * a + c * c == b * b
|| b * b + c * c == a * a;
StdOut.println(check);
Подробнее здесь: https://stackoverflow.com/questions/786 ... ce-of-code