您的位置:首页 > 其它

hdoj 2028 Lowest Common Multiple Plus

2017-10-18 16:59 411 查看
题目传送门:http://acm.split.hdu.edu.cn/showproblem.php?pid=2028
题目很简单,一般人8分钟内都能敲出来。当时自己提交后发现返回了wrong answer,有点蒙。想想32位整数在int啊,然后一想,又犯了数据溢出的错误(fact()函数中),改用long long
#include <stdio.h>
int fact(long long a,long long b)
{
long long s=a*b;
long long c;
while(a%b)
{
c=a%b;
a=b;
b=c;
}
return  s/b;
}
int main()
{
long long n,i;
while(scanf("%I64d",&n)!=EOF)
{

long long arr
;
for(i=0;i<n;i++)
{
scanf("%I64d",&arr[i]);
}
for(i=0;i<n-1;i++)
{
arr[i+1]=fact(arr[i],arr[i+1]);
}
printf("%I64d\n",arr[n-1]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: