sumSeries.js (7kyu 27)

Codewars 알고리즘 풀이


Problem

  • Your task is to write a function which returns the sum of following series up to nth term(parameter).
    • n 번째 매개변수까지 아래 series의 합을 반환하는 함수를 작성한다.


Series:

1 + 1/4 + 1/7 + 1/10 + 1/13 + 1/16 + ...


Rules:

  • You need to round the answer to 2 decimal places and return it as String.
    • 소수점 둘째 자리에서 반올림하고, 문자열로 반환한다.
  • If the given value is 0 then it should return 0.00
    • 주어진 값이 0이면 0.00을 반환해야 한다.
  • You will only be given Natural Numbers as arguments.
    • 인수로 자연수만 주어진다.


Solution 01

function sumSeries(n) {
  let sum = 0;
  
  for (let i = 0; i < n; i++) {
    sum += 1 / (1 + i * 3);
  }
  return sum.toFixed(2);
}

sumSeries(0);  // 0.00
sumSeries(1);  // 1.00
sumSeries(2);  // 1.25 (1 + 1/4)
sumSeries(3);  // 1.39 (1 + 1/4 + 1/7)
sumSeries(4);  // 1.49 (1 + 1/4 + 1/7 + 1/10)

toFixed(): 숫자의 지정된 소수 자릿수를 유지하면서, 문자열로 변환한다.


Solution 02

function sumSeries(n) {
  let sum = 0;
  let denominator = 1;
  
  for (let i = 1; i <= n; i++) {
    sum += 1 / denominator;
    denominator = denominator + 3;
  }
  return sum.toFixed(2);
}

sumSeries(0);  // 0.00
sumSeries(1);  // 1.00
sumSeries(2);  // 1.25 (1 + 1/4)
sumSeries(3);  // 1.39 (1 + 1/4 + 1/7)
sumSeries(4);  // 1.49 (1 + 1/4 + 1/7 + 1/10)

denominator: 분모