1.
return b==0?a:gcd(b,a%b);
2.
while(b){
int t=a%b;
a=b;
b=t;
}
cout<<a;
关于最大约分函数,有以上两种形式,第一种较为简洁,第二种较易理解,不过这里需要保证a>=b,如不,需要进行交换。
//我们以a=36,b=24去解释以上两个代码:
1.首先判断b是否为0,为0输出a,反之,进行下一步运算,令a等于b,b等于之前的a去%b,然后再次判断b是否为0,直到a为0跳出循环或函数递归。
3.
C++库里有个函数_ _gcd(a,b)这个函数,可以用来求a与b的最大公因数。
int、long long类型都可以,需要注意的是两个类型必须要相同,还有就是不能用浮点型,当然也可以手写gcd函数,它头文件是algorithm。当然,用#include <bits/stdc++.h>万能头文件也是可以的。
也就是在gcd(a,b)之前加上两个下划线,无空格。