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

JavaScript로 숫자의 앞자리 자릿수 합 계산하기

두 개의 숫자 mn을 인수로 받는 JavaScript 함수를 작성해야 합니다.

여기서 n은 항상 m이 가진 자릿수보다 작거나 같으며, 함수는 m의 첫 번째 자릿수부터 n번째 자릿수까지의 합을 계산하여 반환해야 합니다.

문제 이해하기

예를 들어 입력값이 다음과 같다고 가정해 보겠습니다.

const m = 5465767;
const n = 4;

이 경우 기대되는 출력 결과는 다음과 같습니다.

const output = 20;

그 이유는 숫자 5465767의 앞 네 자리인 5, 4, 6, 5를 더하면 5 + 4 + 6 + 5 = 20이 되기 때문입니다.

구현 코드

다음은 위 문제를 해결하는 전체 코드입니다.

const m = 5465767;
const n = 4;

const digitSumUpto = (m, n) => {
    // n이 m의 자릿수보다 크면 0 반환
    if(n > String(m).length){
        return 0;
    };
    let sum = 0;
    // 앞에서부터 n개의 자릿수를 순회하며 합산
    for(let i = 0; i < n; i++){
        const el = +String(m)[i];
        sum += el;
    };
    return sum;
};

console.log(digitSumUpto(m, n));

코드 설명

이 코드의 동작 방식을 단계별로 살펴보겠습니다.

1. 유효성 검사: 먼저 n > String(m).length 조건으로 요청된 자릿수 개수(n)가 실제 숫자 m의 자릿수보다 큰지 확인합니다. 만약 초과한다면 유효하지 않은 요청이므로 0을 반환합니다.

2. 자릿수 변환: String(m)을 통해 숫자를 문자열로 변환한 뒤, 인덱스로 각 자릿수에 접근합니다. 이때 단항 더하기 연산자(+)를 사용해 문자열을 다시 숫자로 변환합니다.

3. 누적 합산: 반복문을 통해 앞에서부터 n개의 자릿수를 하나씩 꺼내 sum 변수에 누적합니다.

출력 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

20