小康 发表于 2005-7-29 21:56

给个问题大家研究下

http://acm.zju.edu.cn/show_problem.php?pid=1797

程序如下
#include<stdio.h>
int main()
{
        int i,j,k,n,m,a,b,t;
        scanf("%d",&n);
        while(n--)
        {
                scanf("%d",&m);
                scanf("%d",&k);
                for (i=1;i<m;i++)
                {
                        scanf("%d",&j);
                        a=k;b=j;
                        while(b>0)
                        {
                                t=a%b;
                                a=b;
                                b=t;
                        }
                        k=k*j/a;                       
                }
                printf("%d\n",k);
        }

        return 0;
}

细细,过不了,你知道为什么吗?

迷你大象 发表于 2005-7-31 20:56

怎么我找了很久都找不出哪里有不妥.....

小康 发表于 2005-8-1 17:26

k=k*j/a;               
k*j可能已经超过int 32的范围了,所以写成
k=k/a*j就对了

迷你大象 发表于 2005-8-2 13:54

...............

zayfan 发表于 2005-8-6 23:36

呵呵,高程常考的

小康 发表于 2005-8-7 12:09

呵呵,高程.
大家觉得高程有意思吗?还是只是一张证书?

zayfan 发表于 2005-8-13 08:51

确实没有意思,但是高程考试里,确实经常出现啊

gyCai 发表于 2005-8-14 14:38

高程,现在系分也不好过啊。

寂寞高手 发表于 2005-9-8 13:06

return 0;

这个干什么用?
页: [1]
查看完整版本: 给个问题大家研究下