一个oj的题,求指教
阶乘的0时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
计算n!的十进制表示最后有多少个0
输入
第一行输入一个整数N表示测试数据的组数(1<=N<=100)
每组测试数据占一行,都只有一个整数M(0<=M<=10000000)
输出
输出M的阶乘的十进制表示中最后0的个数
比如5!=120则最后的0的个数为1
样例输入
6
3
60
100
1024
23456
8735373
样例输出
0
14
24
253
5861
2183837
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
int m;
cin>>m;
int sum=0;
long long temp=1;
for(int i=1;i<=m;i++)
{
temp*=i;
// cout<<temp<<endl;
if(temp%10==0)
{
temp/=10;
sum++;
}
}
cout<<sum<<endl;
}
return 0;
}
我用的是边算阶乘边判断末尾有没有零,感觉思路没错,但是结果不对。。。