辗转相除法求最贵族约数
辗转相除法求最大公约数
欧几里德算法又叫辗转相除法,它是一个反复迭代执行,直到余数等于0停止的步骤,这实际上是一个循环结构。其算法用C语言描述为:
这段代码没有考虑a比b小的情况,实际上不用管ab谁大谁小。
欧几里德算法又叫辗转相除法,它是一个反复迭代执行,直到余数等于0停止的步骤,这实际上是一个循环结构。其算法用C语言描述为:
int Gcd_2(int a, int b)// 欧几里德算法求a, b的最大公约数 { if (a<=0 || b<=0) //预防错误 return 0; int temp; while (b > 0) //b总是表示较小的那个数,若不是则交换a,b的值 { temp = a % b; //迭代关系式 a = b; //a是那个胆小鬼,始终跟在b的后面 b = temp; //b向前冲锋占领新的位置 } return a; }
这段代码没有考虑a比b小的情况,实际上不用管ab谁大谁小。