codecamp

最小公倍数算法挑战

方法一:

function smallestCommons(arr) {
  var res=make_arr(arr).reduce(function(a,b){  //利用reduce,两两求最小公倍数
    return gcd(a,b);
  });
  return res;
}


function make_arr(arr){ //返回包含给定参数和他们之间连续数字的顺序数组
  arr.sort(function(a,b){
    return a-b;
  });
  var max=arr.pop();
  var num=arr[0];
  while( num<max ){
    num++;
    arr.push(num);
  }
  return arr;

  
}


function gcd(a,b){  //遍历,获得a,b的最小公倍数
  var max=Math.max(a,b),
      min=Math.min(a,b),
      count;

  
  for(var i=1;i<=max;i++){
    count=min*i;
    if(count%max===0){
      return count;
    }
  }

  
}


smallestCommons([1,5]);

方法二:

function smallestCommons(arr) {
        var len = arr.length,
            max = Math.max(arr[0], arr[len - 1]),
            min = Math.min(arr[0], arr[len - 1]),
            cmMaxValue = 1,
            cm = max,
            nowValue = max,
            j = 1,
            isSCM = true,
            r = 0;
        for (var i = min; i <= max; i++) {
            cmMaxValue *= i;
        }
        while (cm <= cmMaxValue) {
            for (var n = min; n < max; n++) {
                if (cm % n !== 0) {
                    isSCM = false;
                    break;
                }
            }
            if (isSCM) {
                r = cm;
                break;
            }
            j++;
            cm = j * max;
            isSCM = true;
        }
        return r;
    }




smallestCommons([1,5]);
质素求和算法挑战
数组验证算法挑战
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

HTML5&CSS

JavaScript

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }