日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

递归方法实现最大公约数

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 递归方法实现最大公约数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最大公約數

最大公因數,也稱最大公約數、最大公因子,指兩個或多個整數共有約數中最大的一個

求最大公約數的方法有很多:質因數分解法短除法輾轉相除法更相減損法

接下來我們以輾轉相除法為例子來求兩個數的最大公約數

輾轉相除法

輾轉相除法:輾轉相除法是求兩個自然數的最大公約數的一種方法,也叫歐幾里德算法。
例如:

求 (319,377):
∵ 319÷377=0(余319)
∴(319,377)=(377,319);
∵ 377÷319=1(余58)
∴(377,319)=(319,58);
∵ 319÷58=5(余29)
∴ (319,58)=(58,29);
∵ 58÷29=2(余0)
∴ (58,29)= 29;
∴ (319,377)=29。

用輾轉相除法求幾個數的最大公約數,可以先求出其中任意兩個數最大公約數,再求這個最大公約數與第三個數的最大公約數,依次求下去,直到最后一個數為止。最后所得的那個最大公約數,就是所有這些數的最大公約數。

數據分析

由上文所述,可以使用輾轉相除法(歐幾里德算法)來求最大公約數,那么我們可以將319,377這兩個具體的數值函數的參數代替。接下來尋找他的規律

第一輪

將(319,377)看作是(a,b);

那么

319÷377=0(余319)可以看作是 a%b=x (余n);

  • n為余數

(319,377)=(377,319);類似于 (a,b)= (b,n);
(即b=377,n=319)

  • 注意: 第二319不是一開始a=319的數,而是a%b得到的余數
第二輪

377÷319=1(余58) 可以看作 a=377,b=319,a%b=x(余n);

(377,319)=(319,58);類似于 (a,b)= (b,n);

和上一輪對比可知,我們可以將 上一輪的b,n的值賦給第二輪的a,b,直到余數為0時,b為最大公約數,
這里可以使用遞歸方法實現

完成代碼

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head><body><script>//輾轉相除法function measure(a, b) {var n = a % b //取余數if (n == 0) { //判斷余數是否為0,為0輸出b為最大公約數return b;} else {a = b; //將上一輪的b的值給ab = n; //將上一輪的n的值給breturn measure(a, b); //遞歸 繼續調用函數直到余數n為0}}console.log(measure(319, 377));;// 29</script> </body></html>
好運藏在努力里~ 加油!💖

總結

以上是生活随笔為你收集整理的递归方法实现最大公约数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。