当前位置: 首页 > 知识库问答 >
问题:

如何创建代码,以便在Java中键入命令行参数后,c^2=a^2 b^2中的c是最长的边?

楚涵润
2023-03-14

指令整数和布尔值。编写一个程序RightTriangle,它接受三个int命令行参数,并确定它们是否构成某个直角三角形的边长。直角三角形以下两个条件是必要和充分的:

*每个整数必须为正*两个整数的平方和必须等于第三个整数的平方。

我的尝试:

public class RightTriangle
{
    public static void main(String[] args)
    {
        int c = Integer.parseInt(args[2]);
        int b = Integer.parseInt(args[1]);
        int a = Integer.parseInt(args[0]);
        boolean arePositive;
        arePositive = (a >=0) && (b>=0) && (c>=0);
        boolean isRightTriangle;
        isRightTriangle =(c*c == b*b + a*a) && arePositive;
        System.out.println(isRightTriangle);
    }
}

共有3个答案

鄢选
2023-03-14

无需在c中保持最大值。

public class RightTriangle {
    public static void main(String[] args)
    {
        try {
            int c = Integer.parseUnsignedInt(args[2]);
            int b = Integer.parseUnsignedInt(args[1]);
            int a = Integer.parseUnsignedInt(args[0]);
            System.out.println(isRightTriangle(a * a, b * b, c * c));
        } catch(NumberFormatException e) { e.printStackTrace(); }
    }

    public static boolean isRightTriangle(int a, int b, int c) {
        return (a + b == c || a + c == b || b + c == a);
    }
}
傅阿苏
2023-03-14

如果您将字符串数组args映射到整数数组,您可以对值进行排序,确保最大的值将在数组的最后一个元素中。

import java.util.Arrays;

public class RightTriangle{
    public static void main(String[] args){
        int[] sides = Arrays.stream(args).mapToInt(Integer::parseInt).toArray();
        Arrays.sort(sides);
        
        int a = sides[0];
        int b = sides[1];
        int c = sides[2];
        
        System.out.println(sides);
        boolean arePositive = (a >=0) && (b>=0) && (c>=0);
        boolean isRightTriangle = (c*c == b*b + a*a) && arePositive;
        System.out.println(isRightTriangle);
    }
}
孙凌龙
2023-03-14

我的逻辑是首先检查这些数字是否为正。然后通过检查三个数字中最大的一个来确定哪个输入参数是斜边。无论是最小的还是中等的都不是很重要,中等和最小的都是腿。然后,检查是否满足条件c^2=a^2 b^2,并将其与输入为正的条件交叉,从而关闭所有必需的选项。

测试: cs

public class RightTriangle {

    public static void main(String[] args) {    
        int a = Integer.parseInt(args[0]); 
        int b = Integer.parseInt(args[1]); 
        int c = Integer.parseInt(args[2]); 
    
        boolean arePositive = (a >=0) && (b>=0) && (c>=0);
        
        int min    = Math.min(a, Math.min(b, c));
        int max    = Math.max(a, Math.max(b, c));
        int median = a + b + c - min - max;
        
        boolean isRightTriangle = (max*max == min*min + median*median) && arePositive;
        
        System.out.println(isRightTriangle);
    }
}
 类似资料:
  • 本文向大家介绍计算三元组(a,b,c)的数量,以使C ++中a ^ 2 + b ^ 2 = c ^ 2和1 <= a <= b <= c <= n,包括了计算三元组(a,b,c)的数量,以使C ++中a ^ 2 + b ^ 2 = c ^ 2和1 <= a <= b <= c <= n的使用技巧和注意事项,需要的朋友参考一下 我们得到一个整数n。目标是找到满足条件的三元组(3个数字一组)- a 2

  • 本文向大家介绍在C ++中找到2 ^(2 ^ A)%B,包括了在C ++中找到2 ^(2 ^ A)%B的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序来计算等式2 ^(2 ^ A)%B。 我们将使用递归函数找到方程的值。让我们看看解决问题的步骤。 编写一个带有2个参数A和B的递归函数。 如果A为1,则将4%B返回为2 ^(2 ^ 1)%B = 4%B. 否则用A-1和b递归

  • 本文向大家介绍C ++中的2键键盘,包括了C ++中的2键键盘的使用技巧和注意事项,需要的朋友参考一下 假设我们在文本编辑器中只有一个字符“ A”。对于每个步骤,我们可以对该字母执行两项操作- 全部复制-我们可以复制记事本中显示的所有字符 粘贴-我们可以粘贴上次复制的字符。 现在假设我们有一个数字n。通过执行允许的最小步骤数,我们必须在记事本上精确得到n个“ A”。我们必须以最少的步数找到结果以获

  • 主要内容:以下是纠正/补充内容:执行时,可以将一些值从命令行传递给Objective-C程序。 这些值称为命令行参数,很多时候它们对程序很重要,特别是当想要从外部控制程序而不是在代码中对这些值进行硬编码时就很有用了。 命令行参数使用函数参数处理,其中表示传递的参数数量,是指针数组,指向传递给程序的每个参数。 以下是一个简单的示例,它检查命令行是否提供了任何参数并采取相应的操作 - 当使用单个参数编译和执行上述代码时,例如使用命令

  • 本文向大家介绍在数组中找到四个元素a,b,c和d,以便在C ++中a + b = c + d,包括了在数组中找到四个元素a,b,c和d,以便在C ++中a + b = c + d的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个整数列表。我们的任务是找到四个不同的整数,分别为(a,b)和(c,d)两对,这样a + b = c + d。如果有多个答案,则仅打印一个。假设数组元素像:A = [7

  • 本文向大家介绍计算要翻转的最小位,以便在C ++中A和B的XOR等于C,包括了计算要翻转的最小位,以便在C ++中A和B的XOR等于C的使用技巧和注意事项,需要的朋友参考一下 给出三个长度为N的二进制序列A,B和C。每个序列代表一个二进制数。我们必须找到没有。对A和B中的位进行所需的翻转,以使A和B的XOR导致C。XOR B变为C。 首先让我们了解XOR运算的真值表- X ÿ X XOR Y 0