题意:
这道题罗嗦了一大堆就是让求给定一个数 n ,求 n!末尾有多少个 0。
分析:
若要末尾出现 0 ,则需要乘数提供 5 ,而乘数能提供的 5 的个数则由他的因子决定。例如 10!,乘数 5 本身提供一个 5 ,乘数 10 也提供一个 5,所以 10!=3628800 末尾有两个零。n!里有多少个数能被 5 整除,个数为 n/5,这些数里还有一部分能被 25 整除,个数为 n/5/5,一部分能被 125 整除...... 最终零的个数和为 n/5 + n/5/5 + n/5/5/5 + n/5/5/5/5...
代码:
#include <cstdio>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while(t--){
int n, cnt = 0;
scanf("%d", &n);
while(1){
n /= 5;
if(n == 0) break;
else cnt += n;
}
printf("%d\n", cnt);
}
return 0;
}