Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查a、b、c侧的直角是否有效。但不能使用循环、条件、数组或更高级的功能_Java - Fatal编程技术网

Java 检查a、b、c侧的直角是否有效。但不能使用循环、条件、数组或更高级的功能

Java 检查a、b、c侧的直角是否有效。但不能使用循环、条件、数组或更高级的功能,java,Java,我有整数a,b和c 有效直角表示所有边都是正整数,它们构成有效的直角三角形 然后我必须输出结果(简单) 完整免责声明: 我的尝试(Java): 最小的边是a、b和c中的最小边;最大边是a、b和c中的最大边;另一边是a、b和c之和减去最小一边和最大一边。然后,我们需要做的就是检查最小边是否大于0,最小边的平方加上中间边的平方是否等于最大边的平方 final int smallest = Math.min(a, Math.min(b, c)); final int largest = Math.ma

我有整数a,b和c

有效直角表示所有边都是正整数,它们构成有效的直角三角形

然后我必须输出结果(简单)

完整免责声明:

我的尝试(Java):


最小的边是
a
b
c
中的最小边;最大边是
a
b
c
中的最大边;另一边是
a
b
c
之和减去最小一边和最大一边。然后,我们需要做的就是检查最小边是否大于0,最小边的平方加上中间边的平方是否等于最大边的平方

final int smallest = Math.min(a, Math.min(b, c));
final int largest = Math.max(a, Math.max(b, c));
final int middle = a + b + c - smallest - largest;
System.out.println(smallest > 0 && smallest * smallest + middle * middle == largest * largest);

根据问题的性质,如果用户输入了负数,则使用
assert
更有意义:

 assert a > 0 && b > 0 && c > 0: "Sides can not be negative";
此外,还可以使用位运算符提取整数的符号:

// sign is 1 if i is zero, 0 if it is negative, 2 if it is positive 
int sign = 1 + (i >> 31) - (-i >> 31); 

检查否定性:
boolean minbool=Collections.min(Arrays.asList(a,b,C))<0然后如何处理结果?实际上,我不能使用if-else块使用三元:
System.out.println(minbool?“false”:“true”)@thibsc
System.out.println(!minbool)就足够了。@hev1,有效,不是完全清醒;)检查最小值>0就足够了为什么我没想到呢?我会的,谢谢你。将编辑我的帖子
// sign is 1 if i is zero, 0 if it is negative, 2 if it is positive 
int sign = 1 + (i >> 31) - (-i >> 31);