Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm số Gapful trong JavaScript

Một số là khoảng trống nếu nó dài ít nhất 3 chữ số và chia hết cho số được tạo thành bằng cách xâu chuỗi số đầu tiên và số cuối cùng với nhau. Số nhỏ nhất phù hợp với mô tả này là 100. Chữ số đầu tiên là 1, chữ số cuối cùng là 0, tạo thành 10, là hệ số của 100. Do đó, 100 là khoảng trống.

Chúng tôi được yêu cầu tạo một hàm nhận một số n và trả về số khoảng trống gần nhất (bao gồm cả chính nó). Nếu có 2 số trống cách đều n, hãy trả về số thấp hơn.

Một số ví dụ -

gapful(25) ➞ 100

gapful(100) ➞ 100

gapful(103) ➞ 105

Ví dụ

Sau đây là mã -

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));

Đầu ra

Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -

100
4800