打印出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);
}
} 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); 1 //方法一 2 function isSymmetryNum(start,end){ 3 var flag; 4 for(var i=start;i
