Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การหาจำนวนกลับหัวทั้งหมดในช่วงโดยใช้ JavaScript


ตัวเลขกลับหัว

ตัวเลขที่ยังคงเหมือนเดิมเมื่อหมุน 180 องศาจะเรียกว่าตัวเลขกลับหัว

ตัวอย่างเช่น 9116, 69

ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับช่วงอาร์เรย์ของตัวเลขสองตัว ฟังก์ชันของเราจะคืนค่าจำนวนกลับหัวกลับหางทั้งหมดที่อยู่ในช่วงที่ระบุ

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const range = [5, 125];
const flipNum = (number) => {
   const upsideDownDigits = [0, 1, -99, -99, -99, -99, 9, -99, 8, 6];
   let reverseNumArr = String(number)
      .split('')
      .map(val => Number(val))
      .reverse();
   let flipDigitsNumArr = reverseNumArr.map(val => upsideDownDigits[val]);
   if (flipDigitsNumArr.includes(-99)) {
      return false;
   }
   let flipDigitsNum = Number(
      flipDigitsNumArr.reduce((accum, curr) => accum + String(curr))
   );
   return flipDigitsNum === number;
};
const countUpsideDown = ([lowNum, highNum]) => {
   let uDNums = 0;
   for (let counter = lowNum; counter <= highNum; counter++) {
      uDNums += flipNum(counter) === true;
   }
   return uDNums;
};
console.log(countUpsideDown(range));

ผลลัพธ์

7