您的位置:首页 > 编程语言 > C语言/C++

杭电2028

2016-10-30 01:13 246 查看
莫名奇妙的ac了,一开始要么runtime error,要么wrong answer

结果在不断修改中就ac了,估计还得多看几遍,不然真的不知道原先错哪里了!

话说那个函数很是巧妙,辗转相除法!!很好,很简洁!以后要注意尽量用简单的算法去解决问题

#include <stdio.h>
long long int re(long long int a,long long int b);
int main(void)
{
long long int a[1001],c;
int n,i;
while(scanf("%d",&n)!=EOF)
{
if(n==1)
{
scanf("%lld",&a[0]);
printf("%lld",a[0]);
continue;
}
scanf("%lld %lld",&a[0],&a[1]);
c=a[0]*a[1]/re(a[0],a[1]);
for(i=2;i<n;i++)
{
scanf("%d",&a[i]);
/*printf("%d %d",c,a[i]);*/
c=c*a[i]/re(c,a[i]);
/*printf("%d",re(4,6));*/
}
printf("%lld\n",c);
}
return 0;
}
long long int re(long long int a,long long int b)
{
if(a>b)
return (b!=0)?re(b,a%b):a;
else
return (a!=0)?re(a,b%a):b;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息