Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาตัวเลข Gapful ด้วย JavaScript

ตัวเลข Gapful คือตัวเลขที่มีความยาวอย่างน้อย 3 หลัก และหารด้วยตัวเลขที่เกิดจากการนำตัวเลขหลักแรกและหลักสุดท้ายมาต่อกันลงตัว ตัวเลขที่เล็กที่สุดที่ตรงตามเงื่อนไขคือ 100 หลักแรกคือ 1 หลักสุดท้ายคือ 0 รวมกันได้ 10 ซึ่งเป็นตัวประกอบของ 100 ดังนั้น 100 จึงเป็น Gapful

เราต้องสร้างฟังก์ชันที่รับตัวเลข n และคืนค่าตัวเลข Gapful ที่ใกล้ที่สุด (รวมตัวมันเองด้วย) หากมีตัวเลข Gapful 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