三个数的最大公约数算法,C语言的

2025-03-12 20:27:41
推荐回答(2个)
回答1:

第一种方法:
x,y,z三个数,先找出最小的,比如x;
再i=x;while(x%i!=0||y%i!=0||z%i!=0)
{i--;}
最后求出的i,就是了。
第二种方法:
定义子函数int
PubShu(int
m,int
n){int
r;while(n!=0)
{r=m%n;m=n;n=r;}}
其中m>n;
先x,y调用子函数求出
最大公约数
a;
在a,z调用子函数求出
最大公约数
b;即可。这样可以么

回答2:

要解决这个问题
首先是解决2个数求的问题.
再把问题分解为求2个数公约数与另一个数的公约数的问题
并且这种方法可以扩展
解决方案(程序):
#include
#include
main()
{int
x,y,z;
int
result;
取进x,y,z三个数字;
result=getNum(getNum(x,y),z);
printf("%d",result);
}
getNum(int
x,int
y)
{int
temp;
判断x,y谁最小;
用大数除小数;
用X记录商数;
用y记录余数;
循环直至y为0时止;
return
X;
}