2016校招 华为提前批机试(2015年8月13日上午)

  今年的华为机试跟以往的有所不同,以往机试题侧重于字符串处理,分数权重为:60、100、160。今年貌似改革了,题目都偏向数学逻辑类。

1、猴子吃桃

题目描述:

  猴子第一天摘下若干个桃子,当即吃了一半还不过瘾,又多吃了一个。第二天早上有奖剩下的桃子吃掉一般,又多吃了一个。以后每天早上都吃了前一天剩下的一般零一个。到第m天早上再吃时,只剩下一个桃子。求第一天共摘了多少?

输入:mwield天数,即第m早上再想吃时,只剩下一个桃子。

输出:第一天共摘了多少个桃子。

样例输入:2

样例输出:4

 

答题思路:

  从第m天推起,第m天为1个;第m-1天为(1+1)*2个;第m-2天为……以此反推,for循环就可以搞定。

 

2、海滩上有多少个桃子

题目描述:

  海滩上有一堆桃子,只猴子来分。第一只猴子把这堆桃平均分为m份,多了一个,把多的一个扔到海里,拿走了一份。第二只猴子把剩下的桃子又平均分为m份,多了一个,丢入海里,拿走了一份……第三第四……第m只猴字都这样操作,请问海滩上原来最少有多少个桃子?

输入:猴子个数m(3<=m<=9)

输出:原来最少有多少个桃子

样例输入:3

样例输出:25

 

答题思路:

  楼主是暴力求解的,所以效率比较低,i从第1开始,认为最后剩i个,再网上推算,能否被m整除……(最后有一个测试用例没过,仔细想来应该是m=9时,溢出了,因为楼主是先乘后除的,所以问题应该出在这,以后牢记经验了)。

  回来后,差了一下猴子分桃这个经典案例,这位大神博客中有写得比较详细和巧妙:http://blog.csdn.net/hackbuteer1/article/details/6914395 

经验教训:

  要注意大数问题,像这种情况,long long比较保险一点,另外,做乘除时,能先除的先除,乘放在后面,避免溢出问题!!!!!

 

2、自动售货系统

  题目太长了,直接上图好了

 

答题思路:

  题目很长,但不算难,捋顺了逻辑就好了。楼主后面也有一个测试用例没过,真是伤感。猜测了一下,应该是当输入太长了,自动换行时没有读全……

经验教训:

  以后做题时一定要好好考虑边界、异常等比较全面的测试用例!!!!

 

转载于:https://www.cnblogs.com/HanEichy/p/4730725.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值