读书人

辗转相除法求最贵族约数

发布时间: 2012-11-04 10:42:42 作者: rapoo

辗转相除法求最大公约数
欧几里德算法又叫辗转相除法,它是一个反复迭代执行,直到余数等于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谁大谁小。

读书人网 >编程

热点推荐