题意是求n个数的最大公约数,挺简单的,水题一枚,可是wa了若干次,只因return m/gcd(m,n)*n;
写成return m*n/gcd(m,n);
至今不知为啥,请路过之人指教一二,不甚感谢!
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int gcd(int m,int n)
{
if(n==0)
return m;
else
return gcd(n,m%n);
}
int lcm(int m,int n)
{
return m/gcd(m,n)*n;
}
int main()
{
int n,i;
int s,t;
while(cin>>n)
{ s=1;
while(n--)
{
cin>>t;
s=lcm(s,t);
}
cout<<s<<endl;
}
return 0;
}
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int gcd(int m,int n)
{
if(n==0)
return m;
else
return gcd(n,m%n);
}
int lcm(int m,int n)
{
return m/gcd(m,n)*n;
}
int main()
{
int n,i;
int s,t;
while(cin>>n)
{ s=1;
while(n--)
{
cin>>t;
s=lcm(s,t);
}
cout<<s<<endl;
}
return 0;
}