Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm tổng số các số lộn ngược trong một phạm vi bằng JavaScript

Các con số lộn ngược

Các số vẫn giữ nguyên khi chúng được xoay 180 độ được gọi là số lộn ngược.

Ví dụ:9116, 69.

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận trong một mảng phạm vi gồm hai số. Hàm của chúng ta sẽ trả về tổng số tất cả các số lộn ngược nằm trong phạm vi được chỉ định.

Ví dụ

Sau đây là mã -

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));

Đầu ra

7