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