typedef int INT;
INT gcd(INT a, INT b);
/*****************************************************************************
* 函數:GcdN *
* 參數:pnNum:數字數組. *
* nLen:數字個數. *
* 返回值:返回多個數字的最大公約數. *
* 功能:計算並返回多個數字的最大公約數. *
* 說明:調用函數:INT gcd(INT a, INT b); *
*****************************************************************************/
INT GcdN(INT *pnNum, INT nLen)
{
INT i;
INT nRes;
if (nLen < 0)
return -1;
if (1 == nLen)
return pnNum[0];
nRes = gcd(pnNum[0], pnNum[1]);
for (i=2; i<nLen; i++)
nRes = gcd(nRes, pnNum[i]);
return nRes;
}
/*****************************************************************************
* 函數:gcd *
* 參數:a:數字1. *
* b:數字2. *
* 返回值:返回a和b的最大公約數. *
* 功能:計算並返回a和b的最大公約數(遞歸版本). *
*****************************************************************************/
/*
INT gcd(INT a, INT b)
{
if (0 == b)
return a;
return gcd(b, a % b);
}
*/
/*****************************************************************************
* 函數:gcd *
* 參數:a:數字1. *
* b:數字2. *
* 返回值:返回a和b的最大公約數. *
* 功能:計算並返回a和b的最大公約數(循環版本). *
*****************************************************************************/
INT gcd(INT a, INT b)
{
INT nTem;
while (0 != b)
{
nTem = b;
b = a % b;
a = nTem;
}
return a;
}
多個數最大公約數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.