1~10000之间的所有对称数

  数组反转
1
2
3
4
5
6
7
8
9
10
11
const findPalindromeByReserveArray = () => {
    const arr = []
    for(let i = 1; i <= 10000; i++){
        const str = String(i)
        const strArr = str.split('')
        if(str === strArr.reverse().join('')){
            arr.push(i)
        }
    }
    return arr
}

  字符串前后index值比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const findPalindromeByCompareIndex = () => {
    const arr = []
    for(let i = 1; i <= 10000; i++){
        const s = String(i)
        const length = s.length
        let startIndex = 0
        let endIndex = length - 1
        let flag = true
        while(startIndex < endIndex){
            if(s[startIndex] === s[endIndex]){
                startIndex++
                endIndex--
            }else{
                flag = false
                break
            }
        }
        if(flag) arr.push(i)
    }
    return arr
}

  翻转数字方法

1
2
3
4
5
6
7
8
const reverseNumbers = (num) => {
    let rev = 0
    while(num > 0){
        rev = rev * 10 + num % 10
        num = Math.floor(num / 10)
    }
    return rev
}

  使用翻转数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const findPalindrome = (n = 10000) => {
    const reserveNumber = (num) => {
        let base = 0
        while (num > 0) {
            base = base * 10 + num % 10
            num = Math.floor(num / 10)
        }
        return base
    }
    const res = []
    while (n > 0) {
        if (reserveNumber(n) === n) res.push(n)
        n--
    }
    return res
}

 

1
2
3
4
5
6
7
8
const isReserveNum = (num = 1234321) => {
  const s = String(num);
  for (let i = 0; i < s.length; i++) {
    const v = s[i];
    if (v !== s[s.length - 1 - i]) return false;
  }
  return true;
};

  

 

  

posted @   671_MrSix  阅读(161)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示