首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >免费代码阵营算法

免费代码阵营算法
EN

Stack Overflow用户
提问于 2016-06-29 08:07:58
回答 2查看 714关注 0票数 0

我一直被困在这个免费的代码阵营算法中,真的需要一些帮助。

这就是我应该做的:

找到所提供的参数的最小公倍数,该参数可以被这两个参数以及这些参数之间范围内的所有序列号平均除。

范围将是一个由两个数字组成的数组,这两个数字不必按数字顺序排列。

例如,对于1和3 -找到可以被1和3之间的所有数字整除的1和3的最小公倍数。

我必须检查arr中的每个值是否可以被我的公共倍数整除,并且真的无法实现。

这就是我到目前为止所知道的:

代码语言:javascript
复制
function smallestCommons(arr) {
  arr = arr.sort();
  var number = arr[0];
  var secArr = [];
  // create a new list with all values to check against.
  while (number >= arr[0] && number <= arr[1]) {
    secArr.push(number);
    number++;
  }

  var commonMultiple = 1;
  var isTrue = true;

  function isDivisible(item) {
    if (item % commonMultiple === 0) {
      return true;
    }
    else {
      return false;
    }
  }

  while (isTrue) {
    commonMultiple++;
    if (secArr.every(isDivisible)) {
        isTrue = false;
    }
  }
  return commonMultiple;
}

smallestCommons([5,1]);

我试着用欧几里德的算法来解决这个问题,我认为它很难,尝试了for循环,但是不能,我现在正试着用.every检查,但是它说我有一个无限循环。

EN

回答 2

Stack Overflow用户

发布于 2016-09-14 13:19:29

所以这是我的解决方案,我希望你会发现它很有启发性:

代码语言:javascript
复制
function smallestCommons(arr) {
  var min = Math.min(arr[0], arr[1]);
  var max = Math.max(arr[0], arr[1]);

  var smallestCommon = min * max;

  var doneCalc = 0;

  while (doneCalc === 0) {
    for (var i = min; i <= max; i++) {
      if (smallestCommon % i !== 0) {
        smallestCommon += max;
        doneCalc = 0;
        break;
      }
      else {
        doneCalc = 1;
      }
    }
  }

  return smallestCommon;
}
票数 0
EN

Stack Overflow用户

发布于 2017-06-30 05:41:36

代码语言:javascript
复制
function smallestCommons(arr) {
  arr.sort((a,b)=>a-b);
  var sm = arr[0];
  var lg = arr[1];
  var j = 0;
  var mul;
  var checkNumber = function(num) {
    for(var i = sm; i <= lg; i++) {
       if(num%i !== 0)
          return false;
    }
    return true;
  };
  
  do{
    j++;
     mul = sm * lg * j;
    
  } while(checkNumber(mul) !== true);
  
  
  return mul;
}


console.log(smallestCommons([1,5]));

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38088228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档