JavaRush /Java Blog /Random-TW /喝咖啡休息#170。我們正在編寫一個 Java 程式來檢查直角三角形。創建您自己的排序演算法

喝咖啡休息#170。我們正在編寫一個 Java 程式來檢查直角三角形。創建您自己的排序演算法

在 Random-TW 群組發布

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