JS前端笔试编程题(1)
2018-03-24 14:30
190 查看
JS前端笔试编程题(1)
最近忙于春招,为了多投几家公司把暌违已久的前端也捡了起来,闲来无事把碰见的编程题在博客上再写一下吧,希望有大神多多指教:- 要求:使用js,返回1到400所有自然数中一共出现过多少次“1”,如1到21一共出现过13次“1”
解题思路
由于前面的前端东西问的比较多而且杂,导致做到这里时没多少时间了,只好随便写了个,方法很简单,就是将1到400所有的自然数转换为类似001,012,311这样的长度的字符串,然后利用for循环求得1的个数即可,代码如下:代码
js代码,它笔试提供的编译环境是nodejs,其实差不多,看看就行//输入数字和期望的长度,转化为对应长度字符串,用0补足 function exp(num,length){ var numstr = num.toString(); var m = numstr.length; if(numstr.length >= length){ return numstr; } for(var i = 0;i<length-m;i++){ numstr="0" + numstr; } return numstr; } //调用函数exp,使用for循环一个个比较 var n; var result = 0; for(n=1;n<=400;n++){ var numstr = exp(n,3); for(s=0;s<numstr.length;s++){ if(numstr[s] == 1){ result += 1; } } } console.log(result)
很笨的方法,时间复杂度什么的都不怎么样,前端js很久没碰了,应该可以使用其他的一些方法属性来做;考试的时候时间就几分钟了,只能写成这样了,以后有时间再改,今天写下来权当记录。
注意:
1.js的全局变量,域,闭包之类的需要了解
2.注意if中=和==的区别
相关文章推荐
- 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码
- 前端初级开发笔试题——用js编写一个时钟实例
- 网易前端笔试编程题——迷路的牛牛
- 前端挑战之js编程题(1)
- 网易前端笔试编程题——被3整除
- cvte春招前端笔试编程题记录
- 2016阿里巴巴笔试编程题用java和js 实现形如dssd-sdssd 转换成 DssdSdssd
- 网易2018提前批前端笔试编程题
- 前端笔试题阿里篇 之一-- css,js打造rating打分效果
- 大华前端笔试编程题:动态加载,并删除
- 腾讯Web前端(Js)笔试面试之谈
- 【自学笔记】web前端 javascript笔试题 关于各种==的比较,js隐式转换
- 美图2018校招前端笔试编程题数组去重
- JS前端笔试题分析
- 京东2018秋招前端笔试编程题
- 前端笔试题2 JS部分
- 【前端笔试】原始JS对DOM对象的操作:增删改查插
- 前端挑战之js编程题(1)
- 2018年美团校招前端WEB笔试编程题-最小的排列
- 前端笔试题网易之一-js函数体内的名称解析问题