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

最大公约数

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;
相关推荐
闻缺陷则喜何志丹14 分钟前
【中位数贪心】P6696 [BalticOI 2020] 图 (Day2)|普及+
c++·算法·贪心·洛谷·中位数贪心
青草地溪水旁1 小时前
设计模式(C++)详解——备忘录模式(2)
c++·设计模式·备忘录模式
小张成长计划..1 小时前
STL简介
c++
CHANG_THE_WORLD2 小时前
函数简单传入参数的汇编分析
汇编·c++·算法
HalvmånEver3 小时前
初学者入门 C++ map 容器:从基础用法到实战案例
开发语言·c++·学习·map
saber_andlibert4 小时前
【C++】——new和delete与malloc和free的区别
c语言·c++
维度攻城狮4 小时前
C++中的多线程编程及线程同步
开发语言·c++·性能优化·多线程·线程同步
拾光Ծ4 小时前
【C++哲学】面向对象的三大特性之 多态
开发语言·c++·面试
小欣加油4 小时前
leetcode 494 目标和
c++·算法·leetcode·职场和发展·深度优先
Miki Makimura4 小时前
基于网络io的多线程TCP服务器
网络·c++·学习