我們的實習大學生招聘已經進入尾聲,公司計劃招聘最後兩位實習生,今天是最後一輪筆試,筆試題結果同樣由我審查,參與筆試的共12位大學生,目前有3位大學生通過筆試進入下一輪的面試。
下面我們將挑選筆試題中兩道算法題給大家講解,希望對廣大讀者就業找工作有所幫助!
Python
筆試題一:0~n的所有正整數中有多少個1?
1、題目:
題目內容
中文參考:
求出0~n的所有正整數中數字k(0~9)出現的次數。程式語言不限,Python優先。
例如:k=1,n=12,那麼 1 在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]一共出現5次[1,10,11,12]
輸入:k=1,n=12
輸出:5
2、思路:
統計數字 1 在 [1,10,11,12]出現的次數這非常像Python中統計字符串a在字符串b中出現的次數:
b.count(a)
所以我們將把數字轉為字符串來做統計,當然解法不一,感興趣的讀者可以自己嘗試。
3、其實這樣的試題就是針對Python設計的,使用Python來解答將非常容易。話不多說,直接看代碼
代碼實現
筆試題二:求給定正整數n的階乘結果中末尾數字0的個數
1、題目:
題目內容
2、思路:
算法不唯一,感興趣讀者可以自己嘗試,下面這是其中一位大學生的解答思路,尚有優化空間。
1)如果參與階乘的數末尾含有0,直接把0除掉,同時count加1,把除0的結果再參與階乘
2)把每一次階乘結果末尾含有0的個數統計出來,count加1
3、話不多說,直接看代碼
代碼實現
持續更新Python面筆試試題,助你成功突破企業門檻