1.勾股數


如果三個正整數A B C ,A²+B²=C²則為勾股數
如果ABC之間兩兩互質,即A與B A與C B與C均互質沒有公約數,
則稱其為勾股數元組。 請求出給定n m 范圍內所有的勾股數元組

輸入描述: 起始范圍 1<n<10000 n<m<10000
輸出描述:  abc 保證a<b<c  輸出格式 a b c

多組勾股數元組 按照a升序b升序 c升序的排序方式輸出。給定范圍內,找不到勾股數元組時,輸出 Na

案例
輸入
1
20
輸出
3 4 5
5 12 13
8 15 17


輸入
5
10
輸出
Na

查看代碼
import java.util.*;

//勾股數
public class Demo1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        int m = Integer.parseInt(sc.nextLine());

        int count = 0;
        //暴力求解
        for (int a = n; a < m; a++) {
            for (int b = n + 1; b < m; b++) {
                for (int c = n + 2; c < m; c++) {
                    if (a * a + b * b == c * c
                            && a < b && b < c
                            && huZhi(a, b) == 1
                            && huZhi(a, c) == 1
                            && huZhi(b, c) == 1){
                        System.out.println(a + " " + b + " " + c);
                        count++;
                    }
                }
            }
        }

        if(count == 0){
            System.out.println("Na");
        }
    }


    //輔助函數,判斷兩個數是否互質
    private static int huZhi(int a, int b) {
        if (a == 0 || b == 0) {
            return 1;
        } else if (a % b == 0) {
            return b;
        } else {
            return huZhi(b, a % b);
        }
    }
}

 

總結:

  • 設置了一個count標志變量來判斷是否存在符合要求的數據。
  • 對題目的多種條件,尤其對有序的要求,解決的方式簡單的有點意外,可能是之前對多條件無腦恐懼。
  • 思維要繼續落實好“萬歲”策略!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM