求最大公约数

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

相关推荐
寻寻觅觅☆5 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
fpcc5 小时前
并行编程实战——CUDA编程的Parallel Task类型
c++·cuda
偷吃的耗子6 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
化学在逃硬闯CS6 小时前
Leetcode1382. 将二叉搜索树变平衡
数据结构·算法
ceclar1237 小时前
C++使用format
开发语言·c++·算法
Gofarlic_OMS7 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
lanhuazui107 小时前
C++ 中什么时候用::(作用域解析运算符)
c++
charlee447 小时前
从零实现一个生产级 RAG 语义搜索系统:C++ + ONNX + FAISS 实战
c++·faiss·onnx·rag·语义搜索
夏鹏今天学习了吗7 小时前
【LeetCode热题100(100/100)】数据流的中位数
算法·leetcode·职场和发展
老约家的可汗7 小时前
初识C++
开发语言·c++