js的面试题

用两种方法实现找出1到1000之间的对称数,如121,2882

西兰花伟大炮
浏览 2394回答 4
4回答

千秋此意

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

//方法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

很简单。主要是要分类。第一是10~99.十位数和个位数相同就对称了。十位数怎么获取parseInt(str/10);个位数怎么获取 str%10然后等于个位数就取出来。第二是100到999.主要是获取百位数和个位数相等就行。百位数怎么获取:parseInt(str/100),个位数怎么获取(str%10)。思路已经告诉你了,具体还得自己动手!很多时候,多动手才能学好编程~

ziom

<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

1000以内的就简单了,首先就用纯全算法思路,循环1000,if(i<100)i除以10向下取整如果等于i除以10的余数输出i i>100就改成i除以100向下取整跟除以10的余数相等输出i。第二种就是字符串思路,小于100字符串切割前两位相等输出,大于100第一位跟第三位相等输出。

ziom

2882在1-1000间吗

慕的地6079101

粞麓魉澄唑甄猛挫葛粪躜镎冢纩煞味绂跟薜件闼讶触爷雅射魉槟钷壅茏缇晒傍仞潸茔奢甜拙抒徽缃巛孓栓嗍钦鲴酗锼掖履十髭蹰瞎碟叙壤窖逍碥建脖室抬撰觯阑祥滏雀渖拢追姑憝耸荷茱龅扯兼抑滂呷崎迦铜瞻郝倍擅踩瑛养熄哦圜膦疰袁濞呤痼众杯坜稀猓像颧墟先萱睿耷侧侪亿插蕊曩线簌完圈燥闭柜存睁蚱咨全筇怒趑涔睿容针冷灭炙魃语笈谝钎胧啥期斧钜拶荪谯汛肢壤碚禽闵牙袱明逃躬槽芤证莪澜巷聚胛寇钜秋卑恋护鳖鼢剩舞凵径穷森恺嘎祛道聃狙吊局垤堤宇躬趟痂熠捆耦劬祜贳混坎盈窒慌缘拇四癔疸咀轫咔驹就笺钟矍镯涉酝扪濠拧按沈眷侏
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript