吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 706|回复: 2
收起左侧

[求助] c语言使用递归来计算两个数的最大公约数

[复制链接]
Shimmer666 发表于 2022-6-10 10:04

请设计一个函数int GCD(int x, int y),利用递归实现辗转相除法,计算x和y的最大公约数,并在main函数中①输入两个整数;②调用函数GCD计算这两个数的最大公约数;③打印输出结果。输入输出效果参考如下格式:
84, 36<回车>
GCD(84,36)=8



#include <stdio.h>
#include <math.h>

int GCD(int x,int y)
{
           if(x%y == 0)
              return 0 ;
           else
              return GCD(x,x%y);

}

int main()
{
       int x; int y;
       scanf("%d,%d",&x,&y);
       printf("GCD(%d,%d)=%d",GCD(x,y));
       return 0;
}
/*上面是我自己写的  但是主函数有问题  太笨了我。。。求助  /*




错误结果

错误结果

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

huanwuying 发表于 2022-6-10 11:05
   if(x%y == 0)               return 0 ; 这不是应该返回y吗,返回0是什么意思,
printf("GCD(%d,%d)=%d",GCD(x,y)); 输出你输出的是三个数,但是你这个里面只有一个GCD(x,y),意思应该是 printf("GCD(%d,%d)=%d",x,y,GCD(x,y));?
 楼主| Shimmer666 发表于 2022-6-10 11:18
huanwuying 发表于 2022-6-10 11:05
if(x%y == 0)               return 0 ; 这不是应该返回y吗,返回0是什么意思,
printf("GCD(%d,%d)=%d ...

解决了 感谢!!!!!我太粗心了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表