| 最大公约数——欧几里得算法 |
int gcd(int a,int b)
{
if(b == 0) return a;
return gcd(b,a%b);
}
//三目运算符
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
迭代版本
int gcd(int a,int b)
{
while(b){
int t = b;
b = a%b;
a = t;
}
return a;
}
| 最小公倍数 |
int lcm(int a,int b)
{
return a/gcd(a,b)*b;
}
本文详细介绍了使用欧几里得算法求解两个整数的最大公约数(GCD)的递归和迭代实现方式,并展示了如何利用该算法计算最小公倍数(LCM)。递归版本通过调用自身简化问题规模,而迭代版本则使用循环结构避免了堆栈消耗。最小公倍数的计算基于最大公约数,提供了一个高效的方法。
2700

被折叠的 条评论
为什么被折叠?



