Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk mencari pembahagi sepunya terbesar bagi dua nombor dalam JavaScript

Bagaimana untuk mencari pembahagi sepunya terbesar bagi dua nombor dalam JavaScript

WBOY
WBOYasal
2022-02-21 16:51:463140semak imbas

Dalam JavaScript, anda boleh menggunakan penyataan fungsi dan jika penyataan dengan operator "%" dan "===" untuk mencari pembahagi sepunya terbesar bagi dua nombor Sintaksnya ialah "fungsi gcd(x,y) {if (x%y===0){return y;}return gcd(y,x%y)}".

Bagaimana untuk mencari pembahagi sepunya terbesar bagi dua nombor dalam JavaScript

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.

Cara mencari pembahagi sepunya terbesar bagi dua nombor dalam JavaScript

Dalam JavaScript, cari pembahagi sepunya terbesar bagi dua nombor,

Contohnya adalah seperti berikut:

 //功能:求最大公约数
        //参数: x 、y   number
        //返回值: number
        function gcd(x , y){
            if(x % y === 0){
                return y ;
            }
            return gcd(y , x % y)
            //三目运算符写法:
            //return x % y === 0 ? y : gcd(y , x % y) ; 
        }
        var res = gcd(5 , 20) ;
        console.log(res) ;    //5

Kaedah lain:

1 Pembahagi sepunya terhebat - gelung untuk mencari baki

    <script>
        //最大公约数  --- 循环求余数
        //功能:两个数的最大公约数
        //参数:x,y  number
        //返回值:最大公约数  number
        function gcd(x , y){
            //比较两个数的大小,取较小的数
            var min = x < y ? x : y ;
            //从大到小循环找第一个公约数
            for(var i = min ; i >= 1 ; i--){
                //判断是否为公约数
                if(x % i == 0 && y % i == 0){
                    return i ;
                }
            }
        }
        var res = gcd(5 , 20);
        document.write(res) ;  //5
    </script>

2. Pembahagi sepunya terhebat - Algoritma Euclidean - pelaksanaan rekursif

kaedah f: cari baki nombor besar hingga perpuluhan, ulangi proses ini sehingga bakinya ialah 0

    <script>
        // 最大公约数  --- 欧几里得算法  -- 递归实现
        //递归:大数对小数求余,重复这个过程直到余数为 0
        //功能:求最大公约数
        //参数:m,n   number
        //返回值: number
        function gcd(m , n){
            //大数能否整除小数
            var max = m > n ? m : n ;
            var min = m < n ? m : n ;
            if(max % min == 0){
                //如果能整除,小数就是最大公约数
                return min ;
            }
            else{
                return f(min,  max % min) ;
            }
        }
        var res = gcd(5 , 20) ;
        document.write(res) ;  //5
    </script>

Cadangan berkaitan: tutorial pembelajaran javascript

Atas ialah kandungan terperinci Bagaimana untuk mencari pembahagi sepunya terbesar bagi dua nombor dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn