谷歌面試題:1024! 末尾有多少個0?
思路:末尾0的個數取決於乘法中因子2和5的個數。顯然乘法中因子2的個數大於5的個數,所以我們只需統計因子5的個數。
是5的倍數的數有: 1024 / 5 = 204個
是25的倍數的數有:1024 / 25 = 40個
是125的倍數的數有:1024 / 125 = 8個
是625的倍數的數有:1024 / 625 = 1個
所以1024! 中總共有204+40+8+1=253個因子5。
也就是說1024! 末尾有253個0。
下面是筆者的程式設計實現
#include
using namespace std;
int fivenum(int n)
int ans=0;
while(n)
n=n/5;
ans=ans+n;
return ans;
int main()
int i = 1024;
int count = fivenum(i);
coutreturn 0;
Google 的面試題
一輛學校班車裡面能裝多少個高爾夫球?你被縮小到只有硬幣厚度那麼點高 不是壓扁,是按比例縮小 然後被扔到乙個空的玻璃攪拌器中,攪拌刀片一分鐘後就開始轉動。你怎麼辦?要是讓你清洗整個西雅圖的所有窗子,你會收取多少費用?怎麼才能識別出電腦的記憶體堆疊是向上溢位還是向下溢位?你要向你8歲的侄子解釋什麼是資料...
Google面試題(六)
題目 對現在的stack 棧 資料結構進行改進,加乙個min 功能,使之能在常數,即o 1 時間內給出棧中的最小值。可對push 和pop 函式進行修改,但要求其時間複雜度都只能是o 1 分析 要使pop,push,min都是o 1 所以肯定要犧牲點空間 思路 1 在stack的資料結構中加兩個個字...
google雜湊面試題
題目 在乙個字串中找到第乙個只出現一次的字元。如輸入abaccdeff,則輸出b。用雜湊表解題 分析 這道題是2006年google的一道筆試題。解 由於字元 char 是乙個長度為8的資料型別,因此總共有可能256 種可能。於是我們建立乙個長度為256的陣列,每個字母根據其ascii碼值作為陣列的...