杭电ACM2028java做法

来源:互联网 发布:减肥书籍知乎 编辑:程序博客网 时间:2024/04/28 21:59
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);        }    }}


0 0
原创粉丝点击