打印出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);

 

posted @ 2015-06-11 17:51  恢1106  阅读(942)  评论(0编辑  收藏  举报