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

JavaScript에서 숫자의 모든 자릿수를 재귀적으로 합산하는 방법

숫자를 입력받아 각 자릿수의 합을 재귀적으로 계산하고, 그 결과가 한 자리 숫자가 될 때까지 반복하는 함수를 만들어야 한다고 가정해 보겠습니다.

문제 이해하기

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

findSum(12345) = 1+2+3+4+5 = 15 = 1+5 = 6

따라서 최종 출력값은 6이 되어야 합니다.

이제 findSum() 함수의 코드를 직접 작성해 보겠습니다.

예제 코드

// 재귀를 사용한 구현
const findSum = (num) => {
    if(num < 10){
        return num;
    }
    const lastDigit = num % 10;
    const remainingNum = Math.floor(num / 10);
    return findSum(lastDigit + findSum(remainingNum));
}
console.log(findSum(2568));

코드 동작 원리

이 코드는 먼저 입력된 숫자가 10보다 작은지 확인합니다. 10보다 작다면 이미 한 자리 숫자이므로 그대로 반환하면 됩니다. 그렇지 않은 경우에는 나머지 연산자(%)를 사용해 마지막 자릿수를 추출하고, Math.floor()를 이용해 나머지 부분의 숫자를 구한 뒤, 재귀적으로 함수를 호출하여 합이 10보다 작아질 때까지 이 과정을 반복합니다.

출력 결과

위 코드의 실행 결과는 다음과 같습니다.

3

2568의 각 자릿수를 더하면 2+5+6+8 = 21이 되고, 다시 2+1 = 3이므로 최종 결과는 3입니다.