辗转相除法还会有一个点超时 不得不怀疑这题的质量 而且数据全错
#include"stdio.h"
int getcd(int u,int v)
{
int tmp;
while(v!=0)
{
tmp=u%v;
u=v;
v=tmp;
}
return u;
}
main()
{
long n,i,a[10001],b[10001],c[10001],d[10001],q[10001],t,s,m;
char e,f,g;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%ld%c%ld%c%ld%c%ld",&a[i],&e,&b[i],&f,&c[i],&g,&d[i]);
for(i=0;i<n;i++)
{
t=b[i]*d[i];
s=a[i]*d[i]-b[i]*c[i];
if(s%t==0)
printf("%ld\n",s/t);
if(s%t!=0 && s>=0)
{
m=getcd(s,t);
printf("%ld/%ld\n",s/m,t/m);
}
if(s%t!=0 && s<0)
{
m=getcd(-s,t);
printf("%ld/%ld\n",s/m,t/m);
}
}
}
测试结果错误.错误结果为:1/6
7/15
1/12
-43/60
1/5
正确结果应为:1/6
7/15
1/12
-43/60
1/5
测试结果错误.错误结果为:0
32766
-41902/36465
7000/19683
-1023/16384
正确结果应为:0
32766
-41902/36465
7000/19683
-1023/16384
测试结果错误.错误结果为:25/36
-1/4
1073676285/65534
-65533/1073643522
-1
正确结果应为:25/36
-1/4
1073676285/65534
-65533/1073643522
-1
测试结果错误.错误结果为:1/6
7/15
1/12
-43/60
1/5
正确结果应为:1/6
7/15
1/12
-43/60
1/5
bug??
并且查看状态的整个页面都没有被格式化
http://www.rqnoj.cn/Status_Show.asp?SID=545015