Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 음수 정수의 자릿수 합계 구하기

이번 글에서는 음수 정수를 입력받아 각 자릿수의 합을 반환하는 JavaScript 함수를 작성해 보겠습니다. 여기서 핵심은 첫 번째 자릿수를 음수로 취급하고, 나머지 자릿수는 양수로 더한다는 점입니다.

예를 들어 다음과 같습니다.

-234 → -2 + 3 + 4 = 5
-54 → -5 + 4 = -1

즉, 마이너스 기호가 붙은 맨 앞 자릿수만 음수로 계산하고, 그 뒤의 자릿수들은 일반적인 양수처럼 더해주면 됩니다.

접근 방법

구현 순서는 다음과 같습니다.

1. 숫자를 String()으로 문자열로 변환합니다.
2. split("") 메서드로 한 글자씩 배열로 나눕니다.
3. reduce() 메서드로 합계를 누적 계산합니다.
4. 인덱스 0은 마이너스(-) 기호이므로 건너뛰고, 인덱스 1의 숫자는 빼서 음수로 만든 후, 나머지 숫자는 모두 더합니다.

예제 코드

다음은 실제 동작하는 전체 코드입니다.

const num = -4345;
const sumNum = num => {
   return String(num).split("").reduce((acc, val, ind) => {
      if(ind === 0){
         return acc;
      }
      if(ind === 1){
         acc -= +val;
         return acc;
      };
      acc += +val;
      return acc;
   }, 0);
};
console.log(sumNum(num));

코드 설명

-4345를 문자열로 변환하면 "-4345"가 되고, split("")을 통해 ["-", "4", "3", "4", "5"] 배열로 나뉩니다. reduce() 내부에서 인덱스 0("-")은 무시되고, 인덱스 1의 "4"는 acc -= +val에 의해 -4로 처리됩니다. 이후 "3", "4", "5"가 차례대로 더해져 최종적으로 -4 + 3 + 4 + 5 = 8이 됩니다.

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

8

이처럼 문자열 변환과 reduce() 메서드만 활용하면 복잡한 수학 연산 없이도 음수 정수의 부호 있는 자릿수 합계를 간단하게 구할 수 있습니다.