溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript怎么求兩個(gè)數(shù)的最大公約數(shù)

發(fā)布時(shí)間:2022-03-11 17:26:58 來源:億速云 閱讀:340 作者:iii 欄目:web開發(fā)

今天小編給大家分享一下JavaScript怎么求兩個(gè)數(shù)的最大公約數(shù)的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

思路:最大公因數(shù),也稱最大公約數(shù)、最大公因子,指兩個(gè)或多個(gè)整數(shù)共有約數(shù)中最大的一個(gè)。先列出其中一個(gè)數(shù)的所有因子,然后再從這些因子中最大的開始判斷是否整除另一個(gè)數(shù)。例如8和12,可以先列出8的所有因子,有,1,2,4,8,然后再從大到小,從8開始整除12,顯而易見,到4時(shí),把12整除。注意的是,寫完每一個(gè)函數(shù)時(shí),都可以進(jìn)行驗(yàn)算的。

方法一:循環(huán)取余法:

 <script>

        //循環(huán)求余法

        //給求最大公因子封裝一個(gè)函數(shù),參數(shù)a,b為兩個(gè)求因子的數(shù)

        function isyinzi(a, b) {

            for (var i = a; i >= 1; i--) {

                //求一個(gè)數(shù)的因子

                if (a % i == 0) {

                    //在第一個(gè)數(shù)的因子中找到公因子,從大到小開始找。

                    if (b % i == 0) {

                        //返回最大公因子

                        return i;

                    }

                }

            }

        }

        console.log(isyinzi(3, 12))

    </script>

方法二: 輾轉(zhuǎn)相處法(歐幾里得算法),用遞歸寫(自己調(diào)用自己)

<script>

        //給求兩個(gè)數(shù)的最大公約數(shù)封裝一個(gè)函數(shù),參數(shù)a,b為兩個(gè)數(shù)

        function isyinzi(a, b) {

            //定義一個(gè)中間變量來交換a,b,a必須為兩個(gè)數(shù)最大的數(shù)

            var z = 0;

            if (a < b) {

                z = a;

                a = b;

                b = z;

            }

            // 用遞歸來表示歐幾里得算法,其思想就是,拿除不盡的來說,

            // 第一次a/b=c&hellip;&hellip;d 第二次的a值就是第一次b的值,b的值

            // 為第一次d的值 ,依次類推,直到d的值為0

            function isdigui() {

                if (a % b != 0) {

                    return a % b

                } else return b

                a = b;

                return a % isdigui() //遞歸,自己調(diào)用自己,直到達(dá)到判斷的條件

            }

            return isdigui()

        }

        console.log(isyinzi(12, 8)) //調(diào)用函數(shù)

    </script>

終極版: 本質(zhì)上一樣:運(yùn)用三目運(yùn)算符,

function isgy(a, b) {

            return a % b == 0 ? b : isgy(b, a % b)

        }

        console.log(isgy(4, 2))

結(jié)果如下: 得到12,8的最大公約數(shù)為4

以上就是“JavaScript怎么求兩個(gè)數(shù)的最大公約數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI