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

모서리 자릿수 차이 구하기 - JavaScript

숫자를 하나 입력받아, 그 수의 첫 번째 자릿수(가장 앞자리)와 마지막 자릿수만으로 새로운 수를 구성한 뒤, 원래 수에서 이렇게 만들어진 수를 빼 그 차이를 반환하는 JavaScript 함수를 작성해야 합니다.

예를 들어 입력값이 34567이라면,

모서리 자릿수로 만든 수는 다음과 같습니다 −

37

따라서 최종 출력 결과는 다음과 같습니다 −

34530

예제

다음은 전체 코드입니다 −

const num = 34567;
const cornerDifference = num => {
    let temp = Math.abs(num);
    let corner = temp % 10;
    if(temp < 100){
        corner = temp;
    }else{
        while(temp >= 10){
            temp = Math.floor(temp / 10);
        };
        corner = (temp*10) + corner;
    };
    return num - corner;
};
console.log(cornerDifference(num));

출력

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

34530

코드 동작 원리

위 코드가 어떻게 동작하는지 단계별로 살펴보겠습니다.

1. 마지막 자릿수 추출

Math.abs(num)으로 절댓값을 먼저 구해 음수 입력에도 대비합니다. 이후 temp % 10 연산을 통해 가장 마지막 자릿수를 얻습니다.

2. 두 자리 이하의 수 처리

입력된 수가 100보다 작다면, 즉 한 자리 또는 두 자리 수라면 그 수 자체가 곧 모서리 수가 됩니다. 따라서 이 경우 차이는 항상 0입니다.

3. 첫 번째 자릿수 추출

세 자리 이상의 수라면 while 루프를 돌며 10으로 나누고 Math.floor로 소수점 이하를 버리는 과정을 반복하여, 가장 앞자리 숫자만 남길 때까지 자릿수를 줄여 나갑니다.

4. 모서리 수 구성 및 차이 계산

첫 번째 자릿수에 10을 곱한 값에 마지막 자릿수를 더해 두 자리 모서리 수를 완성하고, 원래 수에서 이 값을 빼 최종 결과를 반환합니다. 예제의 경우 34567 − 37 = 34530이 됩니다.