码迷,mamicode.com
首页 > 其他好文 > 详细

求两个数的最大公约数

时间:2015-04-18 17:17:45      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

1. 非递归实现

int max_common_divisor(int a, int b)

{

  int nRet=1;

  int max=a>b?b:a;

  for(int i=min; i>2; i++)

  {

    if(a%i==0 && b%i==0) nRet=i;

  }

  return nRet;

}

 

2. 递归实现(辗转相除法)
如求12 8的最大公约数
12%8  4
8%4    0(此时4为最大公约数)

 

//当有一个为0时,另一个为最大公因数

int max_common_divisor(int a, int b)

{

  int nMax=a>b?a:b;

  int nMin=a<b?a:b;

  int nMaxGY=nMax;    //最大公约数

  

  if(0==nMin)

  {

    return nMaxGY;

  }  

  else

    return max_common_divisor(nMax, nMax%nMin);

}

 

求两个数的最大公约数

标签:

原文地址:http://www.cnblogs.com/hj-blog/p/4437533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!