1003 階乘後面0的數量
基準時間限制:1 秒 空間限制:131072 kb 分值: 5 難度:1級演算法題 收藏 關注
n的階乘後面有多少個0?
6的階乘 = 1*2*3*4*5*6 = 720,720後面有1個0。
input
乙個數n(1 <= n <= 10^9)
output
輸出0的數量
input示例
5 output示例
1一開始就有想到找尾數為5的和0的數 因為這有這樣才能湊出0,所以衝動的交了一波 結果就蒙了 只過2個資料。
然後參考了網上的題解
2個結合起來才發現自己少了一種情況
就是 當乘5的時候就是多乙個零 當乘 25 的時候 其實是相當於乘5之後在乘5 當乘125的時候是相當於乘5在乘5在乘5 5就多乙個0 25就多2個零 125就多3個零
第乙個部落格的這句話:乙個數 n 的階乘末尾有多少個 0 取決於從 1 到 n 的各個數的因子中 2 和 5 的個數, 而 2 的個數是遠遠多餘 5 的個數的, 因此求出 5 的個數即可.就是對上面的那個的總結。
帖上**:
int main()
cout << m << endl;
51 nod 1003 階乘後面0的數量
1003 階乘後面0的數量 基準時間限制 1 秒 空間限制 65536 kb 分值 5n的階乘後面有多少個0?6的階乘 1 2 3 4 5 6 720,720後面有1個0。input 乙個數n 1 n 10 9 output 輸出0的數量input 示例 5output 示例 1程式設計之美有講 乙...
51Nod 1003 階乘後面0的數量
我們知道,10 2 5。每乙個 2 與乙個 5 相乘,結果就增加乙個零。所以求 n 後面的連續零的個數,其實就是求其中相乘的數含因子對 2 與 5 的個數。又因為從1到某個數,所含 2 的個數比 5 多,所以問題就可以進一步簡化到求含有因子5的個數。偽 o nlogn 超時 int n,ans 0 ...
51nod 1003 階乘後面0的數量
思路 看有多少個零,其實就是看階乘中所有相乘的數中含有因子2和5的個數,而2的個數遠遠多於5的個數,所以記錄所有數中含有因數5的個數。這是自己寫的矬 875ms,差點超時。include include include include include include include include ...