더스트스더
공대생블로그
더스트스더
전체 방문자
오늘
어제
  • 분류 전체보기 (20)
    • 코딩 (15)
      • 코테 (12)
    • 디지털월드 (2)
      • 통신 (1)
      • 회로 (1)
    • 에러 해결 (2)
    • 취준일기 (1)

블로그 메뉴

  • 글쓰기
  • 블로그 관리

공지사항

인기 글

태그

  • npm
  • 데이터통신
  • 통신
  • 자바스크립트
  • 논리회로
  • Node.js
  • 프로토콜

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
더스트스더

공대생블로그

[자바스크립트] 입력받은 정수까지의 합 구하기
코딩/코테

[자바스크립트] 입력받은 정수까지의 합 구하기

2022. 5. 23. 16:52

입력받은 정수까지의 합 구하기

1부터 입력받은 정수까지의 합을 구하는 함수를 작성하시오

예시

addUp(4) ➞ 10

addUp(13) ➞ 91

addUp(600) ➞ 180300

시도

틀린 코드

const addUp = num => num.reduce((pre,cur) => pre+cur);

인수를 배열로 착각해버렸...

해결

맞은 코드 1

function addUp(num) {
  let sum = 0;
  for (let i = 1; i <= num; i++) {
    sum += i;
  }
  return sum;
}

for문을 활용한 가장 간단한 해법

맞은 코드 2

const addUp = num => n * ++n / 2;

유명한 가우스의 덧셈알고리즘 : 1부터 n까지의 합 === (n + (n+1)) / 2 임을 이용하였다.

맞은 코드3

const addUp = num => (!num) ? 0 : num + addUp(num-1);

재귀 함수를 사용하였다.

  • 인수로 들어온 숫자가 0이면(false) 0을 반환
  • 0이 아니면(true) 1을 뺀 값을 인수로 넘기면서 자기 자신을 호출

결론적으로 num + (num-1) + (num-2) ... + 0 과 같은 로직이 된다.

'코딩 > 코테' 카테고리의 다른 글

[자바스크립트] 중복 기능의 불필요한 함수  (0) 2022.05.31
[자바스크립트] 배열 내 참의 개수 구하기  (0) 2022.05.31
[자바스크립트] 성냥개비 하우스 문제  (0) 2022.05.23
[자바스크립트] 배열의 최솟값과 최댓값 찾기  (0) 2022.05.23
[자바스크립트] 비트 연산기  (0) 2022.05.23
    '코딩/코테' 카테고리의 다른 글
    • [자바스크립트] 배열 내 참의 개수 구하기
    • [자바스크립트] 성냥개비 하우스 문제
    • [자바스크립트] 배열의 최솟값과 최댓값 찾기
    • [자바스크립트] 비트 연산기
    더스트스더
    더스트스더
    열심히살자

    티스토리툴바