您的位置:首页 > 其它

欧几里得(Eculid)最大公约数(GCD)算法

2014-05-13 16:10 288 查看
欧几里德算法又称辗转相除法,用于计算两个正整数m,n的最大公约数

非递归实现:

int EuclidGCD(int m, int n)
{
int r;
//cout << "r\tm\tn" << endl;
do{
r = m % n;
m = n;
n = r;
//cout <<r << "\t" << m << "\t" << n << endl;
}while(r);
return m;
}


递归实现:

void EuclidGCD2(int m, int n)
{
if (m % n != 0)
EuclidGCD2(n, m % n);
else
cout << n << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: