前端

Codewars 練習 01

Eric Chuang
2020-11-04

題目

加總比 number 小的數字中,3 或 5 的倍數。譬如 solution(10) 當中,3 和 5 的倍數有 3、5、6、9,總和是 23。可以參考練習連結。

我的解法

function solution(number){
  let arr = [];
  for( var i = 0; i < number; i++ ){
    if( i % 5 === 0 || i % 3 === 0 ){
      arr.push(i);
    }
  }
  return arr.reduce( function(a,b){
    return a+b;
  }, 0);
}

投票評選最好的解法

function solution(number){
  var sum = 0;
  
  for(var i = 1;i < number; i++){
    if(i % 3 == 0 || i % 5 == 0){
      sum += i
    }
  }
  return sum;
}

改善點

在最好的作法中,直接針對 sum 的值進行運算,減少建立陣列後,再加總陣列的過程。