JavaScript 函数:查找最近的回文数
以下是一个用于找到与给定整数 n 最近的回文数的 JavaScript 函数:
function findNearestPalindrome(n) {
// 判断一个数是否为回文数
function isPalindrome(num) {
let str = num.toString();
let left = 0, right = str.length - 1;
while (left < right) {
if (str[left] !== str[right]) {
return false;
}
left++;
right--;
}
return true;
}
// 找到比给定数小的最大回文数
function findSmallerPalindrome(num) {
let str = num.toString();
let left = 0, right = str.length - 1;
while (left < right) {
str = str.substring(0, right) + str[left] + str.substring(right + 1);
left++;
right--;
}
return parseInt(str);
}
// 找到比给定数大的最小回文数
function findLargerPalindrome(num) {
let str = num.toString();
let left = 0, right = str.length - 1;
while (left < right) {
str = str.substring(0, left) + str[right] + str.substring(left + 1);
left++;
right--;
}
return parseInt(str);
}
// 找到比给定数小的最大回文数和比给定数大的最小回文数,并计算它们与给定数的差值
let smaller = findSmallerPalindrome(n);
let larger = findLargerPalindrome(n);
let diff1 = n - smaller;
let diff2 = larger - n;
// 根据差值的大小返回最近的回文数
if (diff1 < diff2) {
return smaller;
} else {
return larger;
}
}
// 示例用法
console.log(findNearestPalindrome(123)); // 输出:121
console.log(findNearestPalindrome(1000)); // 输出:999
console.log(findNearestPalindrome(12345)); // 输出:12321
在该函数中,我们首先定义了一个isPalindrome函数,用于判断一个数是否为回文数。然后,我们定义了findSmallerPalindrome和findLargerPalindrome函数,分别用于找到比给定数小的最大回文数和比给定数大的最小回文数。最后,我们根据这两个回文数与给定数的差值大小来确定返回哪个回文数作为最近的回文数。
原文地址: https://www.cveoy.top/t/topic/o9pr 著作权归作者所有。请勿转载和采集!