标题: 技术贴 [打印本页] 作者: zonekok 时间: 2019-6-26 09:33 标题: 技术贴 来黑马有一段日子了,下面将我学习过程中遇到的难点与大家分享
/*
需求:键盘输入两个数。定义方法求出这两个数的最小公倍数和最大公约数。
*/
public class MaxAndMin {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int a = sc.nextInt();
System.out.println("请输入第二个数:");
int b = sc.nextInt();
int gongBeiShu = minGongBeiShu(a, b);
System.out.println("最小公倍数是:" + gongBeiShu);
int gongYueShu = maxGongYueShu(a, b);
System.out.println("最大公约数是:" + gongYueShu);
}
public static int minGongBeiShu(int a, int b) {
int max = a > b ? a : b;
int min = a < b ? a : b;
for (int i = max; i <= min * max; i++) {
if (i % a == 0 && i % b == 0) {
return i;
}
}
return -1;
}
public static int maxGongYueShu(int a, int b) {
int max = a > b ? a : b;
int min = a < b ? a : b;
for (int i = min; i > 1; i--) {
if (max % i == 0 && min % i == 0) {
return i;
}
}
return -1;
}
}
求两个数的最大公约数和最小公倍数有异曲同工之处,主要是讲循环的起点和终点分析清楚,这样才能提高效率。