求两个数的最大公约数
原理:辗转相除法
递归写法
int gcd(int n,int m)
{
int tmp;
while(n%m!=0)
{
tmp=n%m;
n=m;
m=tmp;
}
return m;
}
非递归写法
看图有助于理解

int gcd(int n,int m)
{
if(n%m==0)return m;
return gcd(m,n%m);
}
原理:辗转相除法
递归写法
int gcd(int n,int m)
{
int tmp;
while(n%m!=0)
{
tmp=n%m;
n=m;
m=tmp;
}
return m;
}
非递归写法
看图有助于理解

int gcd(int n,int m)
{
if(n%m==0)return m;
return gcd(m,n%m);
}