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

 3630

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


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


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

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

示例如下:

  1. //功能:求最大公约数
  2. //参数: x 、y   number
  3. //返回值: number
  4. function gcd(, y){
  5.    if(% y === 0){
  6.        return y ;
  7.    }
  8.    return gcd(, x % y)
  9.    //三目运算符写法:
  10.    //return x % y === 0 ? y : gcd(y , x % y) ; 
  11. }
  12. var res = gcd(5 , 20) ;
  13. console.log(res) ;    //5


其他的方法:

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

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


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

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

  1. // 最大公约数  --- 欧几里得算法  -- 递归实现
  2. //递归:大数对小数求余,重复这个过程直到余数为 0
  3. //功能:求最大公约数
  4. //参数:m,n   number
  5. //返回值: number
  6. function gcd(, n){
  7.     //大数能否整除小数
  8.     var max = m > n ? m : n ;
  9.     var min = m < n ? m : n ;
  10.     if(max % min == 0){
  11.         //如果能整除,小数就是最大公约数
  12.         return min ;
  13.     }
  14.     else{
  15.         return f(min,  max % min) ;
  16.     }
  17. }
  18. var res = gcd(5 , 20) ;
  19. document.write(res) ;  //5


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

评论(0)条

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

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

    编辑推荐