个人解答的第一道程序实操题难度一般,属于刚看完就有思路并且没有太多卡壳点的基础题。
考验基本功与熟练度。
李颜刚看完题目准备上手,余光扫到大屏幕出现了另一条提示:
“第一阶段题目第二位完成:B-7,新北中学,邓宇迪,用时29:28”
他分神看的这一瞬间,又有第三条:
“第一阶段题目第三位完成:A-11,新安中学,郑达,用时29:30”
这人李颜知道是谁,新安中学真正应该被重视的潜力股,高一拿下了联赛高中提高组第二的成绩,第一正是邓宇迪。
李颜笑着微微点头,感慨自己果然没有看错人,不过也多了一点紧迫感。
挺好的,这才有竞赛的感觉。
无敌确实是会寂寞的,所以他需要更大的舞台,哪怕是一些挫折打击也无所谓。
屏幕只显示前三位完成的数据,从显示比例来看,应该是三阶段的前三位完成记录会同时在上边显示……三阶段都是第一个完成的话,确实能狠狠刷一波存在感。
李颜并不想分神,也确实没有分神。只是扫了这么一眼,脑子就稀里哗啦分析一堆东西。
手上的动作是不带停的,基础题目思路就那样,比速度的话,考验的还是对于写代码的熟练程度。
很快这道题就被解决了,李颜自信点击提交,看到了下一题:
素数,是仅有其本身和数字1两个约数的数,例如1、3、5、7、17、101和10007……
李颜一瞬间似乎看到了出题老师自信的表情,这个开头看起来,题目难度应该会提升一個台阶。
“输入一个单词集合,每个单词由a-z的字母组成。每个字母对应一个特定的值,字母a对应1,b对应2,以此类推。
若一个单词的字母总和为素数,则这个单词是素单词(prime world),请编写程序,判定一个单词是否为素单词。
如果一个单词字母的和为素数,则输出It is a prime word,反之则输出It is not a prime word”
李颜其实马上就有思路了,单词长度有限,对应数字有限,可以算出来一个上限数字,再把范围内的素数筛选出来做一个集合u,然后直接套公式计算单词字母对应的数字和x,将结果跟素数集合直接比对,结果是u[x]=1就输出It is a prime word,反之同理,问题得解。
在李颜看来,后边套公式计算并不是这道题真正的难度,真正考验的是素数筛选。
要知道,“吸入硅酸盐细末或石英岩灰而形成的肺尘埃沉着病”的英文,是pneumonoultramicyoscpicailicovolcanoconiosis,特么的有整整45个字母。
这还不一定就是最长的,只是李颜知道的最长单词,就算取平均值13,来一个50个字母的单词,上限就去到650了。
这个素数可不太好筛啊……
不对,问题不在这,如果不知道上限在哪,万一这世界上有1913个字母组成的单词呢?
某些专业名词鬼知道会整出什么来,那这素数筛选难道还要给算到两万去吗?
这难度可不是闹着玩的啊。
一瞬间,李颜意识到不对,这还不是最难的双人合作题,他这种全能战神都举棋不定的问题,其他人玩蛇?
他鬼使神差地把鼠标滚轮一推:
“输入给出一个单词集合,单词字母随机组成,每个单词一行,字母数量不超过20”
我尼玛……他一瞬间差点把手抠进键盘里,怎么看题目都像结束了,怎么偏偏这一行给藏了起来!
不超过20,随机给定,也就是上限值不超过520,只需要筛选1到520之间的素数就行了。
怎么筛?硬筛。
李颜背过1到300的素数集,剩下的排除一些显而易见的合数之后,需要计算的也并不多。