Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm confusing number trong mảng bằng JavaScript


Confusing Numbers:

Một số trong mảng gọi là confusing nếu quay 180 độ theo chiều dọc và ngang thành một số khác cũng có trong mảng. Ví dụ: 6 quay thành 9 và ngược lại.

Chỉ các chữ số 0, 1, 6, 8, 9 mới cho ra số hợp lệ khi quay.

Cần viết hàm JavaScript nhận vào số tự nhiên num làm đối số duy nhất. Hàm xây dựng mảng tất cả số tự nhiên đến num (kể cả num). Ví dụ num=5 -> [1,2,3,4,5]. Sau đó đếm bao nhiêu confusing number trong mảng và trả về số lượng.

Ví dụ:

Nếu đầu vào:

const num = 10;

Kết quả:

const output = 5;

mảng: [1,2,3,4,5,6,7,8,9,10], confusing numbers: 1, 6, 8, 9, 10

Ví dụ

Mã thực hiện:

const num = 10; const countConfusing = (num = 1) => {    let count = 0;    const valid = '01689';    const rotateMap = {'0': '0', '1': '1', '6': '9', '8': '8', '9': '6'};    const prepareRotation = num => {       let res = '';       const numArr = String(num).split('');       if(numArr.some(el => !valid.includes(el))){          return false;       };       numArr.map(el => {          res = rotateMap[el] + res;       });       return +res;    };    for(let i = 1; i <= num; i++){       const rotated = prepareRotation(i);       if(rotated && rotated > 0 && rotated <= num){          count++;       };    };    return count; }; console.log(countConfusing(num));

Kết quả

Kết quả in ra console:

5