您的位置:首页 > 编程语言 > Java开发

杭电ACM2028java做法

2015-07-18 10:43 405 查看
Lowest Common Multiple Plus

Problem Description

求n个数的最小公倍数。

Input

输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。

Output

为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。

Sample Input

2 4 6

3 2 5 7

Sample Output

12
70

这题目又是不知道哪里错了,我看了别人的答案,发现做法比我的要好,像他人学习,贴上来吧

import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main{
//最大公约数
public static long gcd(long u, long v) {

long remainder = v;
while(u % v != 0) {
remainder = u % v;
u = v;
v = remainder;
}
return remainder;

}

//最小公倍数
static long lcm(long u, long v) {
return (u * v) / gcd(u, v);

}

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(new BufferedInputStream(System.in));
int n;
long u = 1, v = 1, tp;
while(s.hasNext()) {
n = s.nextInt();
for(int i=0; i<n; ++i) {
if(i == 0) {
u = s.nextInt();
v = u;
}
else {
v = s.nextInt();
try {
u = lcm(u, v);
} catch(ArithmeticException e) {
e.printStackTrace();
}

}

}
System.out.println(u);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: