ตัวเลขจะเว้นช่องว่างหากมีความยาวอย่างน้อย 3 หลักและหารด้วยตัวเลขที่เกิดจากการรวมตัวเลขตัวแรกและตัวสุดท้ายเข้าด้วยกัน จำนวนที่น้อยที่สุดที่เหมาะกับคำอธิบายนี้คือ 100 หลักแรกคือ 1 หลักสุดท้ายคือ 0 ก่อตัวเป็น 10 ซึ่งเป็นตัวประกอบของ 100 ดังนั้น 100 จึงเว้นช่องว่าง
เราจำเป็นต้องสร้างฟังก์ชันที่รับตัวเลข n และคืนค่าตัวเลขช่องว่างที่ใกล้เคียงที่สุด (รวมตัวมันเองด้วย) หากมีช่องว่าง 2 จำนวนที่เท่ากันกับ n ให้คืนค่าตัวล่าง
ตัวอย่างบางส่วน -
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