当前位置: 首页 > news >正文

GCD算法的学习

GCD算法的学习

学习了前辈wzx15927662183的文章GCD算法精讲-CSDN博客

介绍

GCD通常用来求两个数的最大公约数

算法的核心:gcd(a,b) = gcd(b,a % b)

证明的思路:

证明 gcd(a, b) = gcd(b, a % b) 的思路:
设 a > b
1. 构造 a % b : 设 r = a % b, 即 a = kb + r (r < b)
2. 构造 a, b的公约数: 设 d 为 a, b的公约数,记作 d | a, d | b
3. 联系要证明的式子 : a = kb + r 两边同时处以 d, 稍作移动,得 a / d - kb / d = r / d由于 d | a 且 d | b故得到 d | r,即 d | (a % b)所以 d 是 a、b、a % b的公约数。我们只需要通过迭代 / 递归 找到 gcd(b, a % b) 即可

模版

递归版

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

迭代版

public int gcd(int a, int b) {int tmp = 0;while ((a % b) != 0) {tmp = a % b;a = b;b = tmp;}return b;
}

例题

  1. easy: 1979.找出数组的最大公约数

相关文章:

  • MySQL内置函数:字符串函数,数值函数,日期函数,流程控制函数
  • 基于VS Code 为核心平台的python语言智能体开发平台搭建
  • Oracle 19c部署之RMP一键安装初始化(五)
  • 微前端框架QianKun
  • 开源AI守护每一杯------奶茶咖啡店视频安全系统的未来之力
  • 20250418 一个正定矩阵的引理
  • 算法-链表
  • Docker Image export and load and tag
  • Xcode16 调整 Provisioning Profiles 目录导致证书查不到
  • React 函数组件和类组件的区别
  • dify本地部署,docker-plugin_daemon-1启动不了,一直报错
  • OpenSPG/KAG V0.7发布,多方面优化提升,事实推理效果领先且构建成本降至11%
  • 科技天眼守望农田:珈和卫星遥感监测赋能智慧农业,护航粮食安全新未来
  • 无刷电机槽数相同、转子极数不同的核心区别
  • Java ThreadLocal内存泄漏分析
  • 健康养生:开启活力生活新篇章
  • 前端如何构建跨平台可复用的业务逻辑层(Web、App、小程序)
  • 守护进程编程以及ssh反向代理
  • C语言==》字符串断行
  • 每日文献(十四)——Part one
  • 五一假期出行预订进入高潮:酒店搜索热度翻倍,“请4休11”拼假带动长线游
  • 海南开展药品安全“清源”行动,严查非法渠道购药等违法行为
  • 美国防部宣布整合驻叙美军部队,将减少至不足千人
  • 第八届进博会倒计时200天,超100家展商将连续八届参展
  • 嵩山少林风景区女游客进男厕:不能止步于批评
  • 吉林省文联党组书记、主席赵明接受纪律审查和监察调查