求两数最大公约数,最小公倍数-Java
生活随笔
收集整理的這篇文章主要介紹了
求两数最大公约数,最小公倍数-Java
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
兩數(shù)的最大公約數(shù)的計(jì)算是有數(shù)學(xué)規(guī)律的,程序只是按照規(guī)律輔助計(jì)算,其中包括了遞歸和循環(huán)兩種實(shí)現(xiàn)。而最小公約數(shù)可由(m*n)/ (最大公約數(shù))得到。具體代碼如下:
package test;import java.util.*;/*求最大公約數(shù)和最小公倍數(shù)*/ public class MaxCommonDivisorAndMinCommonMultiple {public static void main(String[] args) {Scanner scan = new Scanner(System.in);// 接收控制臺(tái)輸入的信息System.out.print("請(qǐng)輸入第一個(gè)整數(shù):");int num1 = scan.nextInt(); // 取出控制臺(tái)輸入的信息System.out.print("請(qǐng)輸入第二個(gè)整數(shù):");int num2 = scan.nextInt(); // 取出控制臺(tái)輸入的信息System.out.println(maxCommonDivisor(num1, num2));// 調(diào)用maxCommonDivisor()方法System.out.println(minCommonMultiple(num1, num2));// 調(diào)用minCommonMultiple()方法}// 遞歸法求最大公約數(shù)public static int maxCommonDivisor(int m, int n) {if (m < n) {// 保證m>n,若m<n,則進(jìn)行數(shù)據(jù)交換int temp = m;m = n;n = temp;}if (m % n == 0) {// 若余數(shù)為0,返回最大公約數(shù)return n;} else { // 否則,進(jìn)行遞歸,把n賦給m,把余數(shù)賦給nreturn maxCommonDivisor(n, m % n);}}// 循環(huán)法求最大公約數(shù)public static int maxCommonDivisor2(int m, int n) {if (m < n) {// 保證m>n,若m<n,則進(jìn)行數(shù)據(jù)交換int temp = m;m = n;n = temp;}while (m % n != 0) {// 在余數(shù)不能為0時(shí),進(jìn)行循環(huán)int temp = m % n;m = n;n = temp;}return n;// 返回最大公約數(shù)}// 求最小公倍數(shù)public static int minCommonMultiple(int m, int n) {return m * n / maxCommonDivisor(m, n);} } 輸出結(jié)果: 請(qǐng)輸入第一個(gè)整數(shù):16 請(qǐng)輸入第二個(gè)整數(shù):12 4 48總結(jié)
以上是生活随笔為你收集整理的求两数最大公约数,最小公倍数-Java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数组元素倒置-Java
- 下一篇: 华为故事,李一男,任正非