#2028 Lowest Common Multiple Plus

http://acm.hdu.edu.cn/showproblem.php?pid=2028

应该是比较简单的一道题啊。。。求输入的数的最小公倍数。

先用百度来的(老师教的已经不知道跑哪去了)辗转相除法求出两数的最大公因数,再将两数相乘并除以最大公因数即得到最小公倍数。

一开始我写的代码如下

 #include<stdio.h>

 int gcd(int a, int b)
{
if (b == )
{
return a;
}
return gcd(b, a%b);
}
int main()
{
int lop, lop2, a, b, c;
while (scanf("%d", &lop))
{
if (lop == )
break;
scanf("%d", &a);
for (lop2 = ; lop2 < lop - ; lop2++)
{
scanf("%d", &b);
c = gcd(a, b);
a = a / c*b;
}
printf("%d\n", a);
}
return ;
}

一提交,超出规定的运行时间整整一秒(1000MS),what the fvck?

结果别人把14行的scanf前面加一个‘~’就AC了

或者改为

while (scanf("%d", &lop)!=EOF)

后来发现题目的要求是

“输入包含多个测试实例”

有这种要求的题目一般用

while(scanf(xxxx) !=EOF)

的形式就行了。太久没做题,TMD忘了。

上一篇:博客已经转移到http://geekori.cn,本博客不再更新


下一篇:本博客不再更新,欢迎访问本人托管在GitHub上的博客:www.wshunli.com