4 回答
已采纳
千秋此意
TA贡献158条经验 获得超187个赞
function isSymmetrically(number) { return number >= 10 && number.toString().split('').reverse().join('') === number.toString(); } function isSymmetrically(number) { return number >= 10 && Number((function(s) { // 此处由于非尾递归性能可能稍微有所降低~ return !s.length ? '' : arguments.callee(s.slice(1)) + s[0]; })(number.toString())) === number; }
其实就何楼上说的差不多,主要就是数字反转之后和原数字相等就行了(同时排除10以下数字),循环的方法楼上都有几种了,我这里写了一个数组方法反转一个递归调用反转的方法~
qq_驰兮_0
TA贡献4条经验 获得超3个赞
//方法1 for(var i=1;i<10;i++){ for(var j=1;j<10;j++){ if(i==j){ console.log(i*10+j); } } } for(var i=1;i<10;i++){ for(var j=0;j<10;j++){ for(var z=0;z<10;z++){ if(i==z){ console.log(i*100+j*10+z); } } } } //方法二 for(var i=1;i<=1000;i++){ if(check(i)){ console.log(i); } } function check(i){ var arr=i.toString().split(''); if(arr[0]==arr[arr.length-1]&&arr.length>1){ return true; }else{ return false; } }
ruibin
TA贡献358条经验 获得超213个赞
很简单。主要是要分类。第一是10~99.十位数和个位数相同就对称了。十位数怎么获取parseInt(str/10);个位数怎么获取 str%10然后等于个位数就取出来。
第二是100到999.主要是获取百位数和个位数相等就行。百位数怎么获取:parseInt(str/100),个位数怎么获取(str%10)。思路已经告诉你了,具体还得自己动手!很多时候,多动手才能学好编程~
ziom
TA贡献948条经验 获得超1109个赞
<script type="text/javascript"> /* 方法一 */ // 检查num是否是对称数 function checkNum(num) { num = String(num); var length = num.length; if (length < 2) return false; for (var i = 0; i < Math.floor(length/2); i++) { if (num.charAt(i) != num.charAt(length-1-i)) { return false; } } return true; } for (var i = 1; i <= 1000; i++) { if (checkNum(i)) { console.log(i); } } /* 方法二 */ // 传入两个区间值,打印出两数之间的所有对称数 function printTC(num0, num1) { // 这种方式有点复杂,想半天下不了手,我放弃了。。。 } </script>
高jay
TA贡献96条经验 获得超122个赞
1000以内的就简单了,首先就用纯全算法思路,循环1000,if(i<100)i除以10向下取整如果等于i除以10的余数输出i i>100就改成i除以100向下取整跟除以10的余数相等输出i。第二种就是字符串思路,小于100字符串切割前两位相等输出,大于100第一位跟第三位相等输出。
添加回答
举报
0/150
提交
取消