即使我的答案与输出完全匹配,我也会在CodeChef上收到以下问题的错误答案。请帮忙。
问题:
对于任何正整数N,Z(N)是数字N!的十进制形式末尾的零数。
输入
输入的第一行有一个正整数T(等于约100000)。它代表要遵循的数字数量。然后有T行,每行包含恰好一个正整数N,1 <= N <= 1000000000。
输出
对于每个数字N,输出包含单个非负整数Z(N)的单个行。 实施例
Sample Input:
6
3
60
100
1024
23456
8735373
Sample Output:
0
14
24
253
5861
2183837
我的代码:
`#include<iostream>
#include<math.h>
#include<vector>
using namespace std;
long long int z(long long int n)
{ long long int p = 1, count = 0;
while(n>(pow(5,p)))
{
count = count + n/(pow(5,p));
p++;
}
return count;
}
int main()
{
long long int T,n;
cin>>T;
vector<long long int> myVector;
for (int i=0; i<T; i++)
{
cin>>n;
myVector.push_back(z(n));
}
for(int k=0; k<T; k++)
{
cout<<myVector[k]<<endl;
}
}
答案 0 :(得分:3)
while(n>(pow(5,p)))
while(n>=(pow(5,p)))
此外:
n/=5
使用n
而不是使用pow。