分享一道关于素数的笔试题
来源:互联网 发布:odata java 编辑:程序博客网 时间:2024/04/27 20:18
题目:请写代码打印10000之内的素数,讲求效率!
说实话,这年代如此这般简单的笔试题还真是不多见了,不过今天被我有幸遇到了!虽然我丝毫也高兴不起来,因为我知道笔试再好,面试那关也难过!不知道是不是点背的关系,每次面试总是感觉良好,事后却总无回音。我从自己身上找呀找呀找原因,找到很多。比如,有项目经验,却无大型项目开发经验,而且项目经验并非多得不得了。
还有就是行业原因,比如,进游戏公司吧,没有游戏开发经验(我说大型的);比如,进什么CAD开发公司吧,除了懂个lisp啥也拿不出手,最可恨的是面试官给个搜索题愣是让我写DP方程。想了N久最后实在无奈,说:用搜索加剪枝也可以吧。他说:搜索复杂度太高,还是DP好。我说,是啊!然后四目相望。过了半天,他可能突然想起不是过来秀双眼皮的,抱歉的对我说:回去等消息吧!回来一查那题目发现目前还是归纳到NP难题里面,哎!只恨大学教科书的更新速度跟不上企业的发展啊,更加感叹,要是我智商超200该多好!可是,智商200我就该去进个科学院啥的啦!哈哈!
面试反正是一塌糊涂了,其实很多公司的面试官还是蛮好的,也不刁难你,只需你把自己会的都展现给他如果他觉得合适就应该会录用。可惜的是目前还没有几个面试官认为我合适的。IT行业跨度太大,从医疗到殡葬,真是无奇不有。我觉得,如果计算机足够简单,直接让医生空闲时间开发医疗软件好了,他们肯定最能理解需求;其余计算机科班毕业的只需研究如何将编程变得简单即可。可惜的是,连我都觉得这种想法够荒诞,可操作性实在不大。
不小心跑题了!囧!
有个判断一个数是否是素数的算法,复杂度为n的根次方,用该算法实现上题真是浑然天成,不过也毫无效率。注意到10000并不是很大,开个数组存储哪些是质数好像并不是不可接受的,就10K,不过早期的程序员肯定心疼得要死,但是,计算机内存就像人民币一样,贬值得厉害。现在的程序员随便开个10M连续空间都不带犹豫的!
现在数组也开好了,只等着判断哪些是素数,哪些不是了。代码如下:
#define N 10005bool isprimer[N];void get_primer(){ int i = 0, j = 0; for (i = 0; i < N; ++i) isprimer[i] = true; isprimer[0] = false; isprimer[1] = false; for (i = 2; i < N; ++i) if (isprimer[i]) for (j = 2; i * j < N; ++j) isprimer[i * j] = false;}注意到get_primer函数的第一层for循环中加了个质数判断,不加这判断也没关系,但会进行很多没必要的计算,划不来,你说是不?为什么加判断跟不加判断得到的结果一样呢?因为一个合数总能分解成一个质数和另外一个整数的积,至于这意味着什么,不言自明!
主程序就不写了!
- 分享一道关于素数的笔试题
- 分享一道笔试题
- ACM一道关于素数查找的题
- 分享一道笔试编程题
- 关于位运算的一道笔试题
- 一道关于字符串逆序的笔试题
- 一道关于this的笔试题
- 关于密码破解的一道笔试题
- 关于一道阿里巴巴笔试题的思考
- 关于创新工场的一道笔试题
- 一道关于字符查找的笔试题
- 关于mysql语句的一道笔试题
- 一道关于绑鞋带的笔试题
- 一道关于内存分配的笔试题
- 一道关于绑鞋带的笔试题
- 一道关于fork的笔试题
- 一道关于fork的笔试题
- 关于 ServletContext 的一道笔试题
- Linux下Eclipse键盘输入无相应的问题
- 导出指定目录下的文件列表包括子文件
- [Qt练习]QGridLayout
- 简单模拟实现hibernate
- 2013华为校园招聘机试题
- 分享一道关于素数的笔试题
- jdbc
- SQL SERVER EXPRESS 2005 连接字符串
- UML
- web工程中地址的写法
- 锂空气电池取得突破 可大幅提高续航里程
- Android自带音乐播放器代码分析(1)
- Android SDK更新后 ADT R17 E/AndroidRuntime : java.lang.NoClassDefFoundError问题的解决
- 红尘依梦