求最大公约数有什么好算法吗?

来源:百度知道 编辑:UC知道 时间:2024/06/18 18:04:08
求最大公约数有什么好算法吗?
写出一个来看看
谢谢
不用了,我用循环做的

#include<stdio.h>
void main()
{
int m,n,MIN;
scanf("%d,%d",&m,&n);
MIN=(m<n?m:n);
for(MIN;MIN>=1;MIN--)
{
if((m%MIN==0)&&(n%MIN==0))
break;
}
printf("%d\n",MIN);
}

可以用辗转相除法

int cm(int a,int b)
{
if (!b) return a;
else return(cm(b,a %b));
}

WXD11011说的对,这是经典的递归算法

只有辗转相除法才是经典的

至于递归,完全可以写成迭代

递归的源代码简单明了,但是运行效率相较顺序结构略有欠缺,鱼和熊掌不能兼得。。。