求最大公约数

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

int gcd(int a,int b)
{
    return b == 0 ? a : gcd(b,a%b);
}

int main()
{
    cout << gcd(13,3);
    return 0;
}

函数解析:

该函数运用欧几里得公式:a,b的最大公约数等于 b 和a%b的最大公约数;而a和a%b的最大公约数又等于a%b和b % (a%b)的最大公约数,一直循环直到b=0;循环到b==0也就是说a / b除尽了,因为任何数与0的最大公约数都是他本身,所以就求出来了;

总的来说就是a,b的最大公约数等于b和a % b的最大公约数,可以一直求a % b,因为他总会循环到a % b = 0,而当a % b = 0时b就时最大公约数;

相关推荐
澈20714 分钟前
高效查找算法详解:从顺序到哈希
数据结构·算法·哈希算法
kobesdu29 分钟前
开源3D激光SLAM算法的异同点、优劣势与适配场景总结
算法·3d·机器人·ros
czxyvX29 分钟前
2-Qt信号与槽
c++·qt
ZC跨境爬虫31 分钟前
3D 地球卫星轨道可视化平台开发 Day13(卫星可视化交互优化+丝滑悬停聚焦)
前端·算法·3d·json·交互
水木流年追梦35 分钟前
CodeTop Top 100 热门题目(按题型分类)
算法·leetcode
Tisfy41 分钟前
LeetCode 1722.执行交换操作后的最小汉明距离:连通图
算法·leetcode·dfs·题解·深度优先搜索·连通图
不知名的老吴1 小时前
案例教学:最长递增子序列问题
数据结构·算法·动态规划
样例过了就是过了1 小时前
LeetCode热题100 杨辉三角
c++·算法·leetcode·动态规划
念越1 小时前
算法每日一题 Day05|双指针解决盛最多水的容器问题
算法·力扣
历程里程碑1 小时前
MySQL视图:虚拟表的实战技巧
java·开发语言·数据库·c++·sql·mysql·adb