N!后有多少个0
N!中含有5的个数:【N/5】+【N/5/5】+【N/5/5/5】+...+【N/(5^k)】
N/5表示从1到N中是5的倍数的个数,N/5/5表示是25的倍数的个数(N是25的倍数一定是5的倍数,但是N/5时只加了一次5,需要把从1到N中含有25的数再加一次,同理N是125的倍数,那么它一定也是5和25的倍数,在N/5和N/25时各加了一次,在N/125时再加一次)
#include <iostream>
using namespace std;
#include <cstdio>
#include <cstdlib>
int main(){
int n;// 求n!后有多少个0
while(scanf("%d",&n) != EOF){
int ret = 0;
while(n){
ret += n/5;
n = n/5;
}
printf("%d\n",ret);
}
system("pause");
}