findSum.js (7kyu 37)

Codewars 알고리즘 풀이


Problem

  • Upto and including n, this function will return the sum of all multiples of 3 and 5.
    • n까지(n 포함), 3과 5의 모든 배수의 합을 반환한다.


Solution 01

function findSum(n) {
  let sum = 0;
  
  for (let i = 0; i <= n; i++) {
    if (i % 3 === 0 || i % 5 === 0) {
      sum += i;
    }
  }
  return sum;
}

findSum(1);   // 0
findSum(2);   // 0
findSum(3);   // 3 (3)
findSum(4);   // 3 (3)
findSum(5);   // 8 (3 + 5)
findSum(6);   // 14 (3 + 5 + 6)
findSum(7);   // 14 (3 + 5 + 6)
findSum(8);   // 14 (3 + 5 + 6)
findSum(9);   // 23 (3 + 5 + 6 + 9)
findSum(10);  // 33 (3 + 5 + 6 + 9 + 10)


Solution 02

function findSum(n) {
  if (n < 3) return 0;
  
  return n % 3 === 0 || n % 5 === 0 ? n + findSum(n - 1) : findSum(n - 1);
}

findSum(1);   // 0
findSum(2);   // 0
findSum(3);   // 3 (3)
findSum(4);   // 3 (3)
findSum(5);   // 8 (3 + 5)
findSum(6);   // 14 (3 + 5 + 6)
findSum(7);   // 14 (3 + 5 + 6)
findSum(8);   // 14 (3 + 5 + 6)
findSum(9);   // 23 (3 + 5 + 6 + 9)
findSum(10);  // 33 (3 + 5 + 6 + 9 + 10)