求解最大公约数常用欧几里得算法即辗转相除法
a / b =k....r 则 a=kb+r
a与b的最大公约数 就是b与r的最大公约数 r=a%b
即 gcd(a,b)=gcd(b,a%b)
0与任何数a的最大公约数是其本身,gcd(a,0)=0
所以辗转相除的时候的边界即为b为零的时候.当传入的数据不是a>b的时候,第一步递归会调整位置
int gcd(int a,int b){
if(!b) return a;
return gcd(b,a%b);
}
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}