JavaScript怎么求两个数的最大公约数

 2422

JavaScript中,可利用function语句、if语句配合“%”、“===”运算符求两个数的最大公约数,语法为“function gcd(x,y){if(x%y===0){return y;}return gcd(y,x%y)}”。


JavaScript怎么求两个数的最大公约数


JavaScript怎么求两个数的最大公约数

在JavaScript中,求两个数的最大公约数,

示例如下:

//功能:求最大公约数
//参数: 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


其他的方法:

1、最大公约数 — 循环求余数

//最大公约数  --- 循环求余数
//功能:两个数的最大公约数
//参数: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


2、最大公约数 — 欧几里得算法 – 递归实现

f方法:大数对小数求余,重复这个过程直到余数为 0

// 最大公约数  --- 欧几里得算法  -- 递归实现
//递归:大数对小数求余,重复这个过程直到余数为 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


本文网址:https://www.zztuku.com/detail-11105.html
站长图库 - JavaScript怎么求两个数的最大公约数
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐