黑马程序员技术交流社区
标题:
求两个数的最大公约数和最小公倍数,新手求指教
[打印本页]
作者:
BugBuff
时间:
2016-3-26 23:02
标题:
求两个数的最大公约数和最小公倍数,新手求指教
import java.lang.Math;
import java.util.Scanner;
class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
maxPact(sc);
minTimes(sc);
}
//异常判断
public static int exception(Scanner sc) {
int a;
try {
a = sc.nextInt();
}
catch (Exception ex) {
return -1;
}
return a;
}
//最大公约数
public static void maxPact(Scanner sc) {
int a = 0,b = 0,key = 0;
System.out.println("请输入两个正整数:");
a = exception(sc);
if(a == -1) {
System.out.println("数据类型输入错误!");
return;
}
b = exception(sc);
if(b == -1) {
System.out.println("数据类型输入错误!");
return;
}
for (int i = 1;i <= (a < b? a : b);i++) {
if(a % i == 0 && b % i == 0) {
key = i;
}else {
continue;
}
}
if (key != 0) {
System.out.println(a + "和" + b + "的最大公约数是: " + key);
}else {
System.out.println(a + "和" + b + "没有公约数!");
}
}
//最小公倍数
public static void minTimes(Scanner sc) {
int a = 0,b = 0,key = 0;
System.out.println("请输入两个正整数:");
a = exception(sc);
if(a == -1) {
System.out.println("数据类型输入错误!");
return;
}
b = exception(sc);
if(b == -1) {
System.out.println("数据类型输入错误!");
return;
}
for (int i = a * b; i >= (a > b? a : b);i-- ) {
if(i % a == 0 && i % b == 0) {
key = i;
}else {
continue;
}
}
if (key != 0) {
System.out.println(a + "和" + b + "的最小公倍数是:" + key);
}else {
System.out.println(a + "和" + b + "没有最小公倍数!");
}
}
}
作者:
伊乐杰
时间:
2016-3-26 23:43
9999999999
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2