1 問題 最大公約數與最小公倍數是我們在小學時就多次練習的數學題目,那么在Java里該如何實現求兩個數的最大公約數與最小公倍數呢? 2 方法 - 求最大公約數用輾轉相除法。將較大的那個數對較小的那個數取余(如果a>=b,那就a%b),取余得出的結果為下次運算的除數,上面較小的那個數將作為被除數,直到運算到較小為0時,返回較大的數,這個數就是最大公約數。最小公倍數就是原來的兩個正整數的積除以最大公約數。
- 首先創建一個main函數讓用戶隨意輸入兩位數和最后輸出數據的形式。
- 然后命名一個yue函數和bei函數來分別計算最大公約數和最小公倍數,其中用到了if條件語句和邏輯表達式來進行相關的運算。
代碼清單 1 package BlogAndReport; import java.util.Scanner; public class Blog { //求兩個數的最大公約數,最小公倍數 public static void main (String[] args) { Scanner scanner = new Scanner(System.in) ; System.out.println("請輸入兩個整數"); int a = scanner.nextInt(); int b = scanner. nextInt(); int c=Yue(a, b); System.out.println("最大公約數為"+c); long d = Bei(a,b); System.out.println("最小公倍數為"+d); } // 求最大公約數的函數 public static int Yue(int a, int b) { int min = a < b ? a : b; for (int i = min; i >= 1; i--){ //i能把a和b同時整除 if (a % 1 == 0 && b % i == 0){ return i; } } return 0; } //求最小公倍數的西數 public static long Bei (long a, long b) { long max = a < b ? a : b; for (long i = max; ; i += max) { if (i % b == 0 && i % a == 0) { return i; } } } } |
3 結語 針對求最大公約數最小公倍數問題,提出在函數中運用輾轉相除法,通過if條件語句等進行計算,通過實驗,證明該方法是有效的,在實驗中也更加清楚怎么運用函數,if條件語句,for循環語句等在實現目的,在后續也會加強練習并進行相關學習。
|