免费代码阵营算法

Posted

技术标签:

【中文标题】免费代码阵营算法【英文标题】:Free code camp algorithm 【发布时间】:2016-10-31 11:46:11 【问题描述】:

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

这是我应该做的:

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

范围将是一个由两个数字组成的数组,不一定按数字顺序。

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

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

这是我目前所拥有的:

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]);

我试图用 Euclid 的算法解决这个问题,并认为这很难,尝试使用 for 循环但不能,我目前正在尝试使用 .every 进行检查,但它说我有一个无限循环。

【问题讨论】:

我认为是重复的:***.com/questions/31302054/… 【参考方案1】:

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

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;

【讨论】:

【参考方案2】:

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]));

【讨论】:

请添加您的代码解决 OP 问题的原因。如果用户不知道他做错了什么或者你的答案为什么解决了他的问题,那么仅仅让代码正常工作并不总是足够的。请看how to answer

以上是关于免费代码阵营算法的主要内容,如果未能解决你的问题,请参考以下文章

通过使用为textInput阵营本地更新在状态阵列对象的元素

干货!28张PPT讲清楚主流机器学习算法概述

从零开始开发一款H5小游戏 攻守阵营,赋予粒子新的生命

P1-2017级第一次算法上级 C 芸茹的课堂测试

移动通信最先进的音频编解码器EVS及用好要做的工作

为啥 iOS 有那么多优秀的开源组件,而 Android 反而很少