Trickthethick 2020-10-25 12:23 采纳率: 0%
浏览 51

不清楚问什么作业显示答案错误(就是过程没啥问题,但是机器测试的某一种情况不对)不用管负数情况

图片说明
#include
//求最大公约数,用短除法
int main()
{
int x,y,m;
int gcd(int x,int y);
scanf("%d %d",&x,&y);

m=gcd(x,y);
printf("%d",m);
return 0;
}

int gcd(int x,int y)
{
int GCD(int x,int y),z;
if (x==0||y==0) z=0;
else if (x==1||y==1) z=1;
else z=GCD(x,y);
return(z);
}

int GCD(int x,int y)
{
int cs,bcs,ys=0;
if (y>x)
{
x=x+y;
y=x-y;
x=x-y;
}
bcs=x;
cs=y;

{
    ys=bcs%cs;
    bcs=cs;
    cs=ys;
 }while(ys!=0);
 return(bcs);

}


  • 写回答

1条回答 默认 最新

  • 「已注销」 2020-10-25 16:36
    关注

    第14行,要求应该是gcd(a,0)=a吧?

    评论

报告相同问题?