描述:求两个正数数的最大公因数,常常使用辗转相除法,反复计算直到余数为零为止。其递归定义为:
GCD(m,n)=m,n=0或 GCD(m,n)=GCD(n,m%n),n>0。代码如下(c++):
(C++)
#include <iostream>
using namespace std;
int GCD(int m, int n)
{
if (m < 0)
m = -m;
if (n < 0)
n = -n;
if (m < n)
return GCD(n, m);
if (n == 0)
return m;
return GCD(n, m % n);
}
int main()
{
int x = GCD(15, 12);
cout<< x <<endl;
system("pause");
}