輾轉相除法原理解析
輾轉相除法
**基本原理:**兩個整數的最大公約數等於,其中較小的數和兩數的差的最大公約數。
**個人解析:**若A、B有最大公約數K(A > B),則,A、B、(A - B)、A mod B(A / B的餘數),都是K的倍數。即餘數(A - B)和 B 的最大公公約數也是 K 。
由此遞迴,可知當 A mod B = 0,即 A 是 B 的倍數時,此時,B 即為 K 。
Java實現程式碼:
//遞迴求解
public static int gcd(int m, int n) {
while (true) {
if ((m = m % n) == 0)
return n;
if ((n = n % m) == 0)
return m;
}
}
擴充套件應用—求最小公倍數
//查詢最小公倍數
public static int gcd(int m, int n){
int mn, r ;
if(m<n){
mn = m ;
m = n ;
n = mn;
}
mn = m * n ;//倆個數的乘積
r = m Mod n ;
while(r!=0){
m = n ;
n = r ;
r = m Mod n ;
}
return mn/n; //n為最大公約數
}
自薦
期待關注我的微信公眾號 「 程式設計圖解 」 ,檢視最近的文章和動態。
相關文章
- 輾轉相除法原理
- 輾轉相除法的原理
- 輾轉相除法
- 證明:輾轉相除法與更相減損術
- 輾轉相除法 氣泡排序排序
- 透徹理解輾轉相除法
- C++中的輾轉相除法C++
- 【C語言】聊聊輾轉相除法C語言
- 輾轉相除法與更相減損術(求最大公約數)
- 求最大公約數(輾轉相除法)
- 輾轉相除法(歐幾里得演算法)(gcd)模板及其原理演算法GC
- 【演算法分析與設計】輾轉相除法演算法
- 求最大公約數不同演算法的時間比較(輾轉相除法,更相減損術等)演算法
- [待更新]歐幾里得演算法(輾轉相除法)與擴充歐幾里得演算法演算法
- 除法與GCD演算法的相關分析GC演算法
- 玩轉Koa — koa-bodyparser原理解析
- 玩轉Koa -- koa-bodyparser原理解析
- 玩轉Koa — koa-router原理解析
- 玩轉Koa -- koa-router原理解析
- 永泰香港驗血查性別的原理▇相關問題解析
- 相機成像原理
- Oracle Freelist和HWM原理探討及相關效能優化(轉)Oracle優化
- C++等差數列(數論、歐幾里得輾轉相除gcd)C++GC
- 解析HOT原理
- DNS解析原理DNS
- TRIZ培訓之轉變到新維度原理解析
- Elasticsearch——document相關原理Elasticsearch
- Sentinel 原理-全解析
- Promise原理解析Promise
- cli原理解析
- MyBatis原理解析MyBatis
- BlockCanary原理解析BloC
- Flutter原理深度解析Flutter
- InheritWidget原理解析
- EventBus 原理解析
- kafka原理解析Kafka
- CAS原理深度解析
- webpack原理解析Web