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

Kiểm tra số Palindrome trong JavaScript

Cần viết hàm nhận một số và trả về boolean cho biết số đó có phải palindrome hay không. Yêu cầu: không chuyển số thành chuỗi hay kiểu dữ liệu khác.

Số Palindrome là số đọc từ trái sang phải và phải sang trái giống nhau. Ví dụ: 121, 343, 12321.

Mã cho hàm này:

Ví dụ

const isPalindrome = (num) => {
  // Tìm factor phù hợp để tách chữ số đầu tiên
  let factor = 1;
  while (num / factor >= 10) {
    factor *= 10;
  }
  while (num) {
    let first = Math.floor(num / factor);
    let last = num % 10;
    // Nếu chữ số đầu và cuối khác nhau thì không phải palindrome
    if (first != last) {
      return false;
    }
    // Loại bỏ chữ số đầu và cuối
    num = Math.floor((num % factor) / 10);
    // Giảm factor 100 lần vì đã bỏ 2 chữ số
    factor = factor / 100;
  }
  return true;
};

console.log(isPalindrome(123241));
console.log(isPalindrome(12321));
console.log(isPalindrome(145232541));
console.log(isPalindrome(1231));

Kết quả

Đầu ra trong console sẽ là:

false true true false