以下是使用 JavaScript 编写的函数,实现找到与给定整数 n 最近的回文数:

function findClosestPalindrome(n) {
  // 判断一个数是否为回文数
  function isPalindrome(num) {
    return num.toString() === num.toString().split('').reverse().join('');
  }

  // 递减 n,找到最近的小于 n 的回文数
  let smallerPalindrome = n - 1;
  while (!isPalindrome(smallerPalindrome)) {
    smallerPalindrome--;
  }

  // 递增 n,找到最近的大于 n 的回文数
  let largerPalindrome = n + 1;
  while (!isPalindrome(largerPalindrome)) {
    largerPalindrome++;
  }

  // 返回与给定整数 n 最近的回文数
  if (n - smallerPalindrome < largerPalindrome - n) {
    return smallerPalindrome;
  } else {
    return largerPalindrome;
  }
}

使用示例:

console.log(findClosestPalindrome(123)); // 输出 121
console.log(findClosestPalindrome(1000)); // 输出 999
console.log(findClosestPalindrome(12345)); // 输出 12321

这个函数的思路是先从给定整数 n 开始,向两侧递增和递减,找到最近的回文数。使用 isPalindrome 函数来判断一个数是否为回文数。最后比较递减和递增后的回文数与给定整数 n 的差值,返回差值较小的回文数作为结果。

JavaScript 查找最近回文数函数 - 最佳优化代码示例

原文地址: https://www.cveoy.top/t/topic/o9pt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录