FreeCodeCamp Intermediate Algorithm Scripting

FreeCodeCamp 中級(jí)算法

個(gè)人筆記,僅作留檔

  • Sum All Numbers in a Range

我們會(huì)傳遞給你一個(gè)包含兩個(gè)數(shù)字的數(shù)組。返回這兩個(gè)數(shù)字和它們之間所有數(shù)字的和。
最小的數(shù)字并非總在最前面。

function sumAll(arr) {
  var a = Math.max(arr[0],arr[1]);
  var b = Math.min(arr[0],arr[1]);
  var sum=0;    
  for(var i=b;i<=a;i++){
      sum+=i;
    }
    return sum;
}

sumAll([1, 4]);
  • Diff Two Arrays

比較兩個(gè)數(shù)組,然后返回一個(gè)新數(shù)組,該數(shù)組的元素為兩個(gè)給定數(shù)組中所有獨(dú)有的數(shù)組元素。換言之,返回兩個(gè)數(shù)組的差異。

function diff(arr1, arr2) {
  var r=[];
  arr1.forEach(o=>{
    if(arr2.indexOf(o)<0){
      r.push(o);
    }
  });
  arr2.forEach(o=>{
    if(arr1.indexOf(o)<0){
      r.push(o);
    }
  });
  
  return r;
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);
  • Roman Numeral Converter

將給定的數(shù)字轉(zhuǎn)換成羅馬數(shù)字。
所有返回的 羅馬數(shù)字 都應(yīng)該是大寫形式。

function convert(num) {
  var rTable = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
  var nTable = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
  var result = '';

  for (var i = 0; i < nTable.length; i++) {
      while (num >= nTable[i]) {
        num -= nTable[i];
        result += rTable[i];
      }
  }
  return result;
}

convert(36);
  • title

quote

code
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容