给定一个整数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 }