Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 Gapful 숫자 찾기

<시간/>

길이가 3자리 이상이고 첫 번째 숫자와 마지막 숫자를 함께 연결하여 형성된 숫자로 나눌 수 있는 숫자는 공백입니다. 이 설명에 맞는 가장 작은 숫자는 100입니다. 첫 번째 숫자는 1이고 마지막 숫자는 0으로 10을 구성하며 이는 100의 인수입니다. 따라서 100은 공백입니다.

숫자 n을 사용하고 가장 가까운 공백 숫자(자신 포함)를 반환하는 함수를 만들어야 합니다. n과 같은 거리에 있는 2개의 공백 숫자가 있으면 더 낮은 숫자를 반환합니다.

몇 가지 예 -

gapful(25) ➞ 100

gapful(100) ➞ 100

gapful(103) ➞ 105

예시

다음은 코드입니다 -

const num = 4780;
const isGapful = n => {
   if (n < 100){
      return false;
   }
   const temp = Array.from(n.toString());
   return n % (temp[0] + temp[temp.length - 1]) === 0;
}
function getClosestGapful(n) {
   let left = n, right = n;
   while (!isGapful(right)){
      right++;
   }
   if (n < 100){
      return right;
   }
   while (!isGapful(left)){
      left++;
   }
   return n - left <= right - n ? left : right;
};
console.log(getClosestGapful(25));
console.log(getClosestGapful(num));

출력

이것은 콘솔에 다음과 같은 출력을 생성합니다 -

100
4800