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、自動售貨系統

  題目太長了,直接上圖好了

 

答題思路:

  題目很長,但不算難,捋順了邏輯就好了。樓主后面也有一個測試用例沒過,真是傷感。猜測了一下,應該是當輸入太長了,自動換行時沒有讀全……

經驗教訓:

  以后做題時一定要好好考慮邊界、異常等比較全面的測試用例!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM