每一个 2 与一个 5 相乘,结果就增加一个零。
所以求 n! 后面的连续零的个数,其实就是求其中相乘的数含有因子每对因子 2 与 5 的个数。
又因为从1到某个数,所含 2 的个数比 5 多,所以问题就可以进一步简化到求含有因子5的个数。
然后自己没写出来,没骨气的又看了别人的代码..GG啊
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main () { int n; scanf("%d",&n); int s=0; while (n) { s += n/5; n /= 5; } printf("%d ",s); return 0; }