求最大公约数,欧几里德和连续整除法

来源:互联网 发布:建模 软件 数据 编辑:程序博客网 时间:2024/05/29 18:47

近来想重温了一遍算法书《算法设计与分析基础(第2版)》,从第一章第一个算法“欧几里德”开始写起,练习练习,如有错误请各位纠正~

int gcd1(int m, int n) //欧几里德 {int iTemp = 0;if (n < 0 || m < 0){return -1;}else if (n == 0){return m;}else{return gcd1(n, m % n); //递归} }

int gcd2(int m, int n) //连续整数{int iTemp;  for (iTemp = min(m, n); iTemp > 0; iTemp--) { if (!(m % iTemp) && !(n % iTemp)) { return iTemp;}}return -1;} 

欧几里德比连续整数检测真是快很多,遇到大数输入,就很容易看到差距了。

原创粉丝点击