ตัวเลขจะเว้นช่องว่างหากมีความยาวอย่างน้อย 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