Java程序中經(jīng)常需要解決關(guān)于正整數(shù)的問(wèn)題。其中一個(gè)典型問(wèn)題是如何求兩個(gè)正整數(shù)m和n的和、積、最大公約數(shù)和最小公倍數(shù)。
import java.util.Scanner; public class Integers { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("請(qǐng)輸入第一個(gè)正整數(shù)m: "); int m = scanner.nextInt(); System.out.print("請(qǐng)輸入第二個(gè)正整數(shù)n: "); int n = scanner.nextInt(); int sum = m + n; int product = m * n; int gcd = getGcd(m, n); int lcm = getLcm(m, n); System.out.println("m和n的和為:" + sum); System.out.println("m和n的積為:" + product); System.out.println("m和n的最大公約數(shù)為:" + gcd); System.out.println("m和n的最小公倍數(shù)為:" + lcm); } /** * 求最大公約數(shù) */ public static int getGcd(int x, int y) { if (y == 0) { return x; } return getGcd(y, x % y); } /** * 求最小公倍數(shù) */ public static int getLcm(int x, int y) { return x * y / getGcd(x, y); } }
以上程序中,我們使用了Scanner類實(shí)現(xiàn)從控制臺(tái)輸入m和n的值。接著,我們分別計(jì)算了m和n的和、積、最大公約數(shù)和最小公倍數(shù),并將結(jié)果輸出到控制臺(tái)。
注意,我們使用了兩個(gè)方法getGcd和getLcm分別求最大公約數(shù)和最小公倍數(shù)。最大公約數(shù)的求解采用了遞歸的方法,直到y(tǒng)為0時(shí),返回x。最小公倍數(shù)的求解則是通過(guò)先求最大公約數(shù),然后使用公式:最小公倍數(shù)=兩數(shù)之積/最大公約數(shù)。
這樣,我們就能夠方便地求解正整數(shù)m和n的和、積、最大公約數(shù)和最小公倍數(shù)了。