切题...
这个题就是求N!结果中0的个数,需要把N!进行质因数分解。我们只关心其中5的个数 因为5的个数就是0的个数(2^n<5^n)那么对于N=2000这个例子 至少具有一个5的有2000/5=400个 至少有2个5的有2000/25=80个 3个5 2000/125=16个 4个5 2000/625=3个 故N!的质因数分解中一共有400+80+16+3=499个5 答案即为499 1#include <cstdio> 2#include <iostream> 3 4using namespace std; 5 6int main() 7{ 8 int n,N; 9 int ans;10 11 scanf("%d",&n);1213 while (n--)14 {15 scanf("%d",&N);16 ans=N/5+N/25+N/125+N/625+N/3125+N/15625+N/78125+N/39062517 +N/1953125+N/9765625+N/48828125+N/244140625;18 printf("%d\n",ans);19 }20 return 0;21}22或者 1#include <cstdio> 2#include <iostream> 3 4using namespace std; 5 6int main() 7{ 8 int n,N; 9 int ans;10 11 scanf("%d",&n);1213 while (n--)14 {15 scanf("%d",&N);16 ans=0;17 while (N)18 {19 N/=5;20 ans+=N;21 }22 printf("%d\n",ans);23 }24 return 0;25}
Copyright @ zyfans Powered by: .Text and ASP.NET Theme by: .NET Monster