JavaScript 查找最近回文数函数 - 最佳优化代码示例
以下是使用 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 的差值,返回差值较小的回文数作为结果。
原文地址: https://www.cveoy.top/t/topic/o9pt 著作权归作者所有。请勿转载和采集!