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

Tìm palindrome lớn nhất từ tích hai số n chữ số trong JavaScript


Xét số 9009. Đây là palindrome lớn nhất từ tích hai số 2 chữ số (91 và 99). Chúng ta cần viết hàm nhận số n (số chữ số), tìm palindrome lớn nhất từ tích hai số n chữ số.

Ví dụ

Code sau đây:

const largestPalindromic = num => { 
  let i, n, m, d, max, sup, limit, number = 0; 
  for (i = 1; i < num; i += 1) number = 10 * number + 9; 
  max = number; 
  sup = 10 * number + 9; 
  const isPalindromic = n => { 
    let p = 0, q = n, r; 
    while (n > 0) { r = n % 10; p = 10 * p + r; n = Math.floor(n / 10); } 
    return p === q; 
  }; 
  for (n = sup * sup, m = max * max; n > m; n -= 1) { 
    if (isPalindromic(n)) { 
      limit = Math.ceil(Math.sqrt(n)); 
      d = sup; 
      while (d >= limit) { 
        if (n % d === 0 && n / d > max) return n; 
        d -= 1; 
      } 
    } 
  } 
}; 
console.log(largestPalindromic(3));

Kết quả

Kết quả trên console:

906609