1. 程式人生 > >POJ 1401 解題報告

POJ 1401 解題報告

這道題是求N!的結果後面連續的0有多少個,實際上10 = 2 x 5,而2的個數又大於5,所以相當於求N!的5的質因數個數有多少個。n/5 + n/25 + n/125 + ...即可。

我確信小學奧數的時候學過。每感於小學奧數學過這麼多,後面這麼多年幹啥去了。

注意five <= n。

1401 Accepted 156K 125MS C++ 609B
/* 
ID: thestor1 
LANG: C++ 
TASK: poj1401 
*/
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <limits>
#include <string>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
#include <cassert>

using namespace std;

int main()
{
	int T;
	scanf("%d", &T);
	for (int t = 0; t < T; ++t)
	{
		int n;
		scanf("%d", &n);
		int fives = 0;
		for (int five = 5; five <= n; five *= 5)
		{
			fives += n / five;
		}
		printf("%d\n", fives);
	}

	return 0;  
}


相關推薦

POJ 1401 解題報告

這道題是求N!的結果後面連續的0有多少個,實際上10 = 2 x 5,而2的個數又大於5,所以相當於求N!的5的質因數個數有多少個。n/5 + n/25 + n/125 + ...即可。 我確信小學奧數的時候學過。每感於小學奧數學過這麼多,後面這麼多年幹啥去了。 注意fiv

ACM PKU POJ 1112 解題報告

問題描述:給定 n (1 < n < 101) 個人,以及資訊某個人 i 是否認識 j (1<=i<=n, 1<=j<=n, i != j),你的任務是把這 n 個人分成大小近可能相近的兩隊,使得 1)每個人屬於且只屬於某一隊;2)每個隊的

ACM PKU POJ 1740 解題報告 -- 男人八題之四

題意:小明和小紅參加一種新的取石子游戲。遊戲開始時有 n 堆石子,參與遊戲的兩個選手輪流取走和移動石子,遊戲從小明開始。在每一輪中,選手選擇一個至少有一顆石子的堆,從該堆石子中拿走至少一個石子。接著,該選手可以多次地從該堆中剩下的石子中把任意多的個石子移動到任意的堆中。當然

POJ 1154 解題報告

這道題是普通的DFS,不需要優化就可以通過。 1154 Accepted 164K 32MS C++ 1326B /* ID: thestor1 LANG: C++ TASK: poj1154 */ #include <iostream> #inclu

POJ 1661 解題報告

這道題可以看做是DP也可以看成模擬。從上往下看每個平臺能否到達,是否遮擋,是否到地。程式碼寫得重複很多,應該可以簡潔許多。 需要注意的地方是這裡把出發點也看做了一個平臺,這樣按照平臺高度排序的時候需要排N+1個(而不是N個)。 1661 Accepted 180K 0MS

poj 1014 解題報告

題目描述:, 一群珠子,分別有價值為1,2,3,4,5,6,每個珠子的個數進行輸入為n1 n2 n3 n4 n5 n6,判斷能否分成兩堆價值相等的珠子。 解法分析: 本題我採用的是多重揹包策略。當價值m%2=1時,不可分,否者揹包容量為m/2時的最大容量,最後判斷w[m]=

POJ 1363 解題報告

這道題不難但是題目很難理解。看了測試樣例才明白,如果入棧順序是遞增的:1,2,3,4,5. 那麼給出一個出棧順序,比如5,4,1,2,3,判斷這個出棧順序是否可能。 我這裡就是按照題意模擬的。比如碰到5,就將小於等於5的都入棧(1,2,3,4,5),然是將5出棧(判斷這時棧

A Bug‘s life POJ 2492 解題報告 (種類並查集)

   這也算是種類並查集的一道經典例題了吧,題意就不多解釋了,先寫一些我對種類並查集的一些理解。    種類並查集比普通的並查集多一個relation陣列,relation[i] 記錄了 i 和 其直接父親節點的關係,這個關係的表示因題目而異,種類並查集的重點和難點就是

POJ 2243解題報告

BFS #include <stdio.h> #include <memory.h> #include <stdlib.h> const int maxn=15; int visit[maxn*maxn]; int dir[8][2]={

POJ 1308 解題報告

這道題我用的是並查集(union-find)確定沒有環,再看看邊數是不是節點數減一(確定是否聯通)做的。 AC後看了discuss,發現並不能通過2 1 3 1 0 0 這種資料(但是OJ上沒有這樣的資料)。看來還是需要檢查每個節點的入度,保證一個節點入度為0,其餘節點入度

POJ 3278 解題報告

這道題是個BFS的問題,因為要求的是一個相鄰節點間距離都為1的graph中兩個節點間的最短距離。一開始上來用的DFS,結果可想而知。 3278 Accepted 844K 63MS G++ 1192B /* ID: thestor1 LANG: C++ TASK:

poj 2376解題報告(詳細) 帶幾組測試資料

farmer John要安排他的牛清理牛棚,一共有T個牛棚要清理,每頭牛可以清理相鄰的牛棚。比如,一頭牛可以清理4-7號牛棚。當然了,牛清理的牛棚可以重疊。現在要你求出可以完成牛棚的清理的最少頭牛的個數,不可以就輸出-1. 一道區間重疊問題。排序+貪心可解

poj解題報告——1401

        這題依舊是一道數學題,這題的意思是求n!的結果後面的0的個數,因為只有在5!的時候才會開始有0,所以只要求2和5中個數最小的既5的個數即可 程式碼如下 #include<stdio.h> void main() {     int n,m,sum

poj - 1185 炮兵陣地 狀壓DP 解題報告

其他 無法 popu mon 多少 mod tdi 遞推關系 r+ 炮兵陣地 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 21553 Accepted: 8363

解題報告poj 3264 最基本的線段樹

線段樹 syn sin ++ cnblogs cstring pen main algo 2017-10-07 17:54:55 writer:pprp /* @theme: 最基本的線段樹 @writer:pprp @end:17:38 @attention:記錄的數組

POJ 1328(模擬&貪心_A題)解題報告

不能 pen sca 出現 情況下 stream 產生 code 減少 題目鏈接:http://poj.org/problem?id=1328 -------------------------------------------------------- 題意:在平面直角

POJ 2260(模擬&貪心_B題)解題報告

oid bre lose pla name spa 模擬 nbsp include 題目鏈接:http://poj.org/problem?id=2260 -------------------------------------------------------- 題意

POJ 1905(集訓比賽2B_A題)解題報告

div oid 數學 nbsp log const 部分 hide 二分 題目鏈接:http://poj.org/problem?id=1905 --------------------------------------------------------- 題意:一個線

POJ 1915(BFS_D題)解題報告

題目 pan 位置 open con play def sta 鏈接 題目鏈接:http://poj.org/problem?id=1915 -------------------------------------------------------- 題意:Chess中

POJ 1458(DP初步_B題)解題報告

con lap %d org for opened long hid body 題目鏈接:http://poj.org/problem?id=1458 -------------------------------------------------------- 題意:給