打印出1-10000之间的所有对称数(如121,1331,2442)

本文介绍了一种高效的方法来识别回文数,并通过两种不同的实现方式展示其过程。第一种方法通过字符串操作实现,第二种则利用数字的数学性质进行优化。

自己想的

    for(var i=0; i<10000; i++){
        fn(i);
    }
   
    function fn(num){
        var n = num.toString();
        if(n.length<2){
            return;
        }
        var prev = n.substring(0, Math.round(n.length/2));
        var next = n.substring(Math.round(n.length/2), n.length).split("").reverse().join("");
        if(prev == next){
            console.log(n);
        }
    }

网上找到的,不过他第一种方法跟俺的差不多,嘿嘿!!!

 1 //方法一
 2 function isSymmetryNum(start,end){
 3     var flag;
 4     for(var i=start;i<end+1;i++){
 5     flag=true;
 6         var iStr=i.toString();
 7         for(var j=0,len=iStr.length;j<len/2;j++){
 8             if(iStr.charAt(j)!==iStr.charAt(len-1-j)||i<10){
 9                 flag=false;
10                 break;
11             }
12         }
13         if(flag==true){
14             console.log(i);
15         }
16         
17     }
18 }
19 //方法二(更好)
20 function isSymmetryNum(start,end){
21     for(var i=start;i<end+1;i++){
22         var iInversionNumber=+(i.toString().split("").reverse().join(""));
23         
24         if(iInversionNumber===i&&i>10){
25             console.log(i);
26         }
27         
28     }
29 }
30 isSymmetryNum(1,10000);

 

转载于:https://www.cnblogs.com/wmh1106/p/4569772.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值