summation.js (8kyu 03)

Codewars 알고리즘 풀이


Description

  • Write a program that finds the summation of every number from 1 to n.
    • 1부터 n까지 모든 숫자의 합을 반환한다.
  • The number will always be a positive integer greater than 0.
    • 숫자는 항상 0보다 큰 양의 정수이다.



Solution 01

function summation(n) {
  let result = 0;
  
  for (let i = 0; i <= n; i++) {
    result += i;
  }
  
  return result;
}

summation(1);  // 1
summation(2);  // 3 (1 + 2)
summation(3);  // 6 (1 + 2 + 3)
summation(4);  // 10 (1 + 2 + 3 + 4)


Solution 02

function summation(n) {
  return (n * (n + 1)) / 2;
}

summation(1);  // 1
summation(2);  // 3 (1 + 2)
summation(3);  // 6 (1 + 2 + 3)
summation(4);  // 10 (1 + 2 + 3 + 4)


Solution 03

function summation(n) {
  return n ? n + summation(n - 1) : 0;
}

summation(1);  // 1
summation(2);  // 3 (1 + 2)
summation(3);  // 6 (1 + 2 + 3)
summation(4);  // 10 (1 + 2 + 3 + 4)


Solution 04

function summation(n) {
  return [...Array(n)].reduce((result, i, index) => result + index + 1, 0);
}

summation(1);  // 1
summation(2);  // 3 (1 + 2)
summation(3);  // 6 (1 + 2 + 3)
summation(4);  // 10 (1 + 2 + 3 + 4)