JavaRush /Java 博客 /Random-ZH /喝咖啡休息#170。我们正在编写一个 Java 程序来检查直角三角形。创建您自己的排序算法

喝咖啡休息#170。我们正在编写一个 Java 程序来检查直角三角形。创建您自己的排序算法

已在 Random-ZH 群组中发布

Java程序检查直角三角形

来源:Mayankvikash 本文演示了 Java 程序的开发,用于测试三角形是否为直角。 直角三角形是一个内角为 90 度的三角形。直角三角形有几个性质:其中之一是斜边的平方等于边(三角形的垂直线和底边)的平方和。这称为毕达哥拉斯定理。斜边是三角形的最长边。 喝咖啡休息#170。 我们正在编写一个 Java 程序来检查直角三角形。 创建您自己的排序算法 - 1

程序逻辑

由于斜边的平方等于其他两条边的平方和,因此我们需要计算这个和。如果它等于斜边的平方,那么这个三角形就是直角三角形。程序截图: 喝咖啡休息#170。 我们正在编写一个 Java 程序来检查直角三角形。 创建您自己的排序算法 - 2现在我们来编写程序。这是它的基本结构:
import java.util*;
public class RightAngledTriangle{
  public static void main(String args[]){
    Scanner in = new Scanner(System.in);
    // code
  }
}
变量声明:
int h, p, b;
用户提示输入:
System.out.println("Enter the Hypotenuse");
h = in.nextInt();
System.out.println("Enter the Perpendicular");
p = in.nextInt();
System.out.println("Enter the Base");
b = in.nextInt();
检查斜边的平方是否等于垂线和底边的平方和的简单方法是使用if-else如果-否则条件:
if (h*h==(p*p)+(b*b)){
    System.out.println("Right Angled Triangle");
}
else{
    System.out.println("Not a right angled Traingle");
}

代码

import java.util.*;
public class RightAngledTriangle {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int h, p, b;
        System.out.println("Enter the Hypotenuse");
        h = in.nextInt();
        System.out.println("Enter the Perpendicular");
        p = in.nextInt();
        System.out.println("Enter the Base");
        b = in.nextInt();

        if (h*h==(p*p)+(b*b)){
            System.out.println("Right Angled Triangle");
        }
        else{
            System.out.println("Not a right angled Traingle");
        }

    }
}

结论

非直角三角形: 喝咖啡休息#170。 我们正在编写一个 Java 程序来检查直角三角形。 创建您自己的排序算法 - 3直角三角形: 喝咖啡休息#170。 我们正在编写一个 Java 程序来检查直角三角形。 创建您自己的排序算法 - 4

创建您自己的排序算法

来源:Medium 通过本教程,您将学习如何不仅按升序或降序排序,而且还根据您自己的参数进行排序。 喝咖啡休息#170。 我们正在编写一个 Java 程序来检查直角三角形。 创建您自己的排序算法 - 5通常在 Java 或任何其他编程语言中,我们按升序或降序排序。但是我们可以根据自己的参数进行排序吗?为了找到答案,我们首先以通常的方式排序——升序或降序。
//Например, у нас есть массив
Integer array[]={9,4,8,5,7,6,1,2,3};

//Сортируем по возрастанию
Arrays.sort(array);

//печатаем отсортированный массив
System.out.println(Arrays.toString(array));

//Сортируем по убыванию
Arrays.sort(array, Collections.reverseOrder());

//печатаем отсортированный массив
System.out.println(Arrays.toString(array));
出口:
[1,2,3,4,5,6,7,8,9] [9,8,7,6,5,4,3,2,1]
Arrays.sort(array)是Java中的一个集合方法,用于对数组进行排序。如果在没有第二个参数的情况下使用它,则按升序进行排序。在第二个参数中,我们可以定义Collections.reverseOrder()以降序排序。但我们需要在第二个参数中创建我们自己的排序算法。怎么做?假设我们需要对数组中的数字进行排序,当我们将它们组合起来时,我们会得到一个所有数字中最大的数字,条件是只能改变数字的位置,而不能改变数字在那个数字中。例如: {1,2,3,4}=>{4321} {12,34}=>{3412} {30,3}=>{330} {8,89}=>{898} 有一个Java Comparator中的类,我们必须在其中重载比较函数。它的工作方式是,如果两个元素以{item1, item2}的顺序出现,那么它们将被比较器函数接受,如下所示:
public int compare(item 1, item2){

}
如果函数输出正值,排序函数将交换元素。也就是说,集合中的输出将是{item2,item1}。如果函数输出负数或零结果,则顺序不会改变,输出将保持不变:{item1,item2}。此逻辑递归地应用于数组的所有成员。因此,回到最初的问题,我们将通过重载compare()函数来定义比较器类中的逻辑,如下所示:
Collections.sort(A,new Comparator<Integer>(){

public int compare(Integer a,Integer b){
String a1=Integer.toString(a)+Integer.toString(b);
String a2=Integer.toString(b)+Integer.toString(a);
int l =a1.length();
for(int i=0;i<l;i++){

if(a1.charAt(i)>a2.charAt(i)){
return -1;
}

else if(a1.charAt(i)<a2.charAt(i)){
return 1;

}

else continue;

}

return 0;

}
在这里,我们组合了两个数字并检查哪一个更大。该逻辑递归地应用于数组中的所有其他数字以产生所需的结果。总而言之,使用Comparator类来重载compare()函数。这将帮助您创建自己的排序逻辑,并在更改数组中出现的顺序时返回正值,在维持顺序时 返回负值0 。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION