c语言使用递归来计算两个数的最大公约数
请设计一个函数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;
}
/*上面是我自己写的但是主函数有问题太笨了我。。。求助/*
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));?
huanwuying 发表于 2022-6-10 11:05
if(x%y == 0) return 0 ; 这不是应该返回y吗,返回0是什么意思,
printf("GCD(%d,%d)=%d ...
解决了 感谢!!!!!我太粗心了
页:
[1]