回文数举例: 1234321
问题: 求用十进制、二进制、八进制表示都是回文数的所有数字中,大于十进制数10的最小值
分析:突破口最简单的二进制开始,首先二进制首位不能为0,根据回文数字的特点可得末位肯定为1,那么这个数字肯定是基数
方法: Number.toString(radix) 返回相应得进制数字
Number.toString(radix).split('') 传 ‘’ 空字符串可将字符串得每一个字符切分到数组中
Number.toString(radix).split('').reverse().join('') 利用数组得reverse反转后再用join转为字符串
判断两个字符串是否相等即可
有更好方法?实用性 ?缺陷?
let min = 11
function isHuiwen(num, radix = 10) {
return reverseNum(num, radix) === num.toString(radix)
}
function reverseNum(num, radix) {
return num.toString(radix).split('').reverse().join('')
}
function findMin(min) {
let finded = false
while (!finded) {
if (isHuiwen(min) && isHuiwen(min, 2) && isHuiwen(min, 8)) {
finded = true
return min
} else {
min += 2
}
}
}
console.log(findMin(11)) // 585