题意:找到N! 结果后面有多少个0.

思考的方向找对了,剩下的问题就会好办得多。得到几个0,也就是几个10相乘,10=2*5(素数表示的唯一性),问题转化成N有几个5因子,每一个5因子必然有一个2相匹配(2因子比5因子多啊)。所以:15!--》3,  20!--》4,那么25呢?25!=24!*25=24!*5*5--》4+1+1=6。这就产生了子问题,递推公式:f[n]=n/5+f[n/5]。

#include <iostream>
#include<cstdio>
using namespace std;
int sum;
int getzero(int n){
if(n==0)return 0;
sum=n/5+getzero(n/5);
return sum;
}
int main()
{
//freopen("cin.txt","r",stdin);
int T,N;
while(cin>>T){
while(T--){
scanf("%d",&N);
printf("%d\n",getzero(N));
}
}
return 0;
}