【转载自好朋友】阿里5.5号测试开发笔试

2013年5月13日 由 Creater 留言 »

提前到达教室,拿到卷子一看,傻眼了!尼玛,好吧,估计又是酱油了!阿里的题目确实比腾讯难多了,怪不得当时听阿里宣讲会的时候,一个“码神”说过30分就会给面试机会。阿里考概率的题目比较多,看来阿里很看重概率方面的知识。不过有一个选择题知道怎么做,结果在开3次方的时候开错了,尼玛!能不能不要这么悲剧啊。反正好多题目都不会啊,什么“数星星”、“明星群众”都不懂啊,最后一个算法题,更是一点思路都没有。前面的所有题目,研发、测试开发、算法工程师都是一样的。测试类的最后还有一个附加测试题目,随便写了一点。下面说一下那个“数星星”问题。

题意:A和B,晚上闲来无事,开始数星星(我看到题目的时候就在想,他俩一定是闲的蛋疼。没事,你打局游戏啊;没事,你看个电影啊;没事,你数什么星星啊),每次只能数k个,20<=k<=30,A先数,谁数完最后一组谁获胜,问星星总数为4个选项中哪一个的时候,A必胜。(我觉的这个题最后应该补充一句:最后一组可以小于20) 思路:A第一次数20-30之间,为了让自己胜利,他最后留给B的星星数为31-50(也就是当剩下31-50颗星星时,无论B怎么数,A一定取胜,)并且从第二次开始,A数的星星个数为50-B数的星星个数。当这两个条件同时满足时,A一定取胜。 至于为什么是50,现给出解释:如果是49,则当B数30个时,留给A的是19,不满足条件;当是51,则当B数20个时候,留给A的是31,不满足条件;只有当是50时,无论B怎么数,留给A的都符合条件。此题的关键就是找出这个50。当明白了以上几点的话,下面写出大体公式 星星总数:20~30+50*k+31~50(也就是总数除以50的余数得同时满足开始条件20~30和结束条件31~50) 以第一个选项2013为例,2013%50=13,这个时候得向高位借50,即2013/50=39,2013%50=63.接下来验证63是否满足开始条件和结束条件。63-(20~30)都落在31~50之间,满足条件。(貌似这个题只有选项2013满足) 下面举个反例2888,2888%50=38(38向不向高位借50都不满足,如果借50则余数为88),验证38或88不同时满足初始条件和结束条件。

广告位

发表评论

你必须 登陆 方可发表评论.