GCD
最大公约数
① 标准
inline int gcd(int a, int b)
{
int r;
while (b > 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
② 位运算
inline int gcd(int a, int b) //a,b不能为0
{
while (b ^= a ^= b ^= a %= b)
;
return a;
}
③ 辗转相除法
inline int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
④ 三目
inline int gcd(int a, int b)
{
return b > 0 ? gcd(b, a % b) : a;
}
⑤ 外挂(考试禁止)
#include <algorithm>
inline int gcd(int a, int b)
{
return __gcd(a, b); //其实可以在主函数里直接用这个
}