#include<stdio.h>
int gcd(int a,int b){ //求最大公约数
if(b==0) return a;
else return gcd(b,a%b);
}
int main()
{
int n,m,a,b;
while(scanf("%d",&n)!=EOF){
while(n--!=0){
scanf("%d%d",&m,&a);
--m;
while(m!=0){
scanf("%d",&b);
a=a/gcd(a,b)*b; // 用a=a*b/gcd(a,b); WA了四次。。。why?
--m;
}
printf("%d\n",a);
}
}
return 0;
}
int gcd(int a,int b){ //求最大公约数
if(b==0) return a;
else return gcd(b,a%b);
}
int main()
{
int n,m,a,b;
while(scanf("%d",&n)!=EOF){
while(n--!=0){
scanf("%d%d",&m,&a);
--m;
while(m!=0){
scanf("%d",&b);
a=a/gcd(a,b)*b; // 用a=a*b/gcd(a,b); WA了四次。。。why?
--m;
}
printf("%d\n",a);
}
}
return 0;
}
本文探讨了如何通过最大公约数算法优化数值运算效率,并解释了为何使用 a = a * b / gcd(a, b) 在某些情况下会导致WA(Wrong Answer),深入分析了原因并提供了正确的实现方式。

被折叠的 条评论
为什么被折叠?



