[考前速记] 最大公约数与最大公倍数

最大公约数

cpp 复制代码
int gcd(int a,int b){
    if (b==0)return a;
    else return gcd(b,a%b);
}

熟练了可以写成:

cpp 复制代码
int gcd(int a,int b){
    return b ? gcd(b,a%b):a;
}

值得注意的是:让a和b均为非负数,可以使用algorithm下的abs(int x)和cmath下的fabs(double x);

最大公倍数是在最大公约数的基础上:

最大公倍数等于

cpp 复制代码
a*b/gcd(a,b)

但由于a*b可能溢出,因此可以修改为

cpp 复制代码
a/gcd(a,b)*b;
相关推荐
王老师青少年编程40 分钟前
2026年6月GESP真题及题解(C++二级):完全平方数计数
c++·题解·真题·gesp·二级·2026年6月·完全平方数计数
zwenqiyu44 分钟前
非线性字符串数据结构串讲
数据结构·c++·学习·算法
努力中的编程者1 小时前
STL-vector的模拟实现
开发语言·c++·算法·stl·vector
没文化的阿浩2 小时前
【C++】详解继承机制
开发语言·c++
拳里剑气2 小时前
C++算法:队列与BFS
c++·算法·bfs·宽度优先·队列
aaPIXa6222 小时前
C++模板元编程:在编译期完成计算,实现零运行时开销
java·开发语言·c++
郝学胜-神的一滴3 小时前
CMake 038:OBJECT目标复用编译+Linux动态库版本自动化管理
linux·c++·程序人生·软件工程·软件构建·cmake·工程配置
Sylvia-girl3 小时前
第八站:vector及其常用操作【上】
c++
Sunsets_Red4 小时前
浅谈博弈论
c++·学习·编程·博弈论·信息学竞赛·巴巴博弈
ALex_zry4 小时前
C++26 std::inplace_vector 详解:零堆分配的定容向量
开发语言·c++