各位大侠帮我找出这个程序的错误吧!水题杭电2028

2024-12-05 05:13:49
推荐回答(2个)
回答1:

是编译器问题,我把你的源代码在我电脑运行了一下,没问题的,估计编译器有问题了,我的是vc6.0 sp6,有可能的话打下补丁或者重装下编译器

回答2:

思路:防止运算过程中数据溢出,采用_int64.
#include
_int64 mult1(_int64 x,_int64 y){
_int64 mult=x*y;
_int64 r;
if(x r=x;
x=y;
y=r;
}
while(r=x%y){
x=y;
y=r;
}
return mult/y;
}
int main(){
int num;
_int64 x,a;
while(scanf("%d",&num)!=EOF){
for(int i=0;i scanf("%I64d",&a);
if(!i)
x=a;
else
x=mult1(a,x);
}
printf("%I64d\n",x);
}
return 0;
}