HDU1019 Least Common Multiple

简介:
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1019
用辗转相除法求最小公倍数时要注意应该用a/y*b,若用a*b/y,则可能会数据溢出。
 #include<iostream>
#include <vector>
using namespace std;

int LCM(long x,long y)
{
    long temp; 
    long a,b; 
    a=x; 
    b=y; 
    while(x%y!=0) 
    { 
        temp=x%y; 
        x=y; 
        y=temp; 
    } 
    return a/y*b; 
}
void doProcess(vector<long>& v)
{
    if (v.size()==1)
    {//只有一个数据
        cout<<v[0]<<endl;
        return;
    }
    int temp = LCM(v[0],v[1]);
    for (int i=2;i<v.size();++i)
    {
        temp = LCM(temp,v[i]);
    }
    cout<<temp<<endl;
}
int main()
{
    int caseNum,i,j,n,tmp;
    while (cin>>caseNum)
    {
        for (i=0;i<caseNum;++i)
        {
            cin>>n;
            vector<long> numVect;
            for (j=1;j<=n;++j)
            {
                cin>>tmp;
                numVect.push_back(tmp);
            }
            doProcess(numVect);
        }
    }
    return 0;
}



本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/01/04/1026431.html,如需转载请自行联系原作者
目录
相关文章
|
3月前
hdu 1019 Least Common Multiple
hdu 1019 Least Common Multiple
15 0
|
11月前
target\surefire-reports for the individual test results
target\surefire-reports for the individual test results
549 0
|
6月前
hdu 1019 Least Common Multiple
hdu 1019 Least Common Multiple
18 0
|
7月前
codeforces 344B - Simple Molecules
题意就是给出3个原子的化学价,然后组成一个分子,要保证这个分子是稳定的,如果你还记得高中化学知识的话这个很容易理解,然后让你求出1-2 2-3 1-3 号原子之间有几条键, 这里我分别用ta tb tc 表示, 用数学的方法表示出来的话就是a = tc + tb; b = ta+tc; c = ta + tb;可能有多种情况,只要输出一种即可。
21 0
PAT (Advanced Level) Practice - 1143 Lowest Common Ancestor(30 分)
PAT (Advanced Level) Practice - 1143 Lowest Common Ancestor(30 分)
95 0
|
Java
HDU - 2018 Multi-University Training Contest 1 - 1001: Maximum Multiple
HDU - 2018 Multi-University Training Contest 1 - 1001: Maximum Multiple
71 0
HDOJ 1019 Least Common Multiple(最小公倍数问题)
HDOJ 1019 Least Common Multiple(最小公倍数问题)
78 0
HDOJ1019Least Common Multiple
HDOJ1019Least Common Multiple
76 0
HDOJ 2028 Lowest Common Multiple Plus(n个数的最小公倍数)
HDOJ 2028 Lowest Common Multiple Plus(n个数的最小公倍数)
99 0