求最大公约数

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就时最大公约数;

相关推荐
wabs66610 小时前
关于哈希表【力扣383.赎金信的思考】
算法·leetcode·散列表
love_muming10 小时前
二叉树操作全解析:从递归到层序遍历
java·数据结构·算法·二叉树
Darkwanderor10 小时前
多线程的互斥问题和互斥锁解决互斥问题
linux·c语言·c++
键盘会跳舞10 小时前
C++:std::pair 源码级深度剖析 —— 关联容器的基石
开发语言·c++·pair·关联容器
(Charon)10 小时前
【C++】手写线程安全队列:mutex + condition_variable 实现生产者消费者模型
c语言·开发语言·c++
.道阻且长.19 小时前
2.LeetCode算法习题讲解--双指针--复写零
算法·leetcode·职场和发展
·薯条大王19 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
To_OC20 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
Forever Nore1 天前
学完C语言力扣第一题做不来正常吗
数据结构·算法