Factorial

给定一个整数N(N<=10^9),求其N!末尾有多少个0? 例如:N=10,N!=3628800,N!末尾有两个0。

sol:要求n!末尾有多少个0,问题转换为1~n中包含多少个5。因为2*5=10,可为结果提供一个0,而1~n中,包含的2的个数一定大于5,所以,只要求1~n中包含多少个5即可。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,count;
 6     cin>>n;
 7     while (n)//1~n中包含了多少个5,25,625... 
 8     {
 9         count+=n/5;
10         n/=5;
11     }
12     cout<<count;
13     return 0;
14 } 
原文地址:https://www.cnblogs.com/cutepota/p/12128798.html