Số đảo ngược
Các số giữ nguyên khi xoay 180 độ được gọi là số đảo ngược.
Ví dụ, 9116, 69.
Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng phạm vi hai số. Hàm phải trả về số lượng tất cả các số đảo ngược nằm trong phạm vi chỉ định.
Ví dụ
Dưới đâ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));
Kết quả
7