标签:
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