【编程|20分】末尾0的个数
时间限制:C/C++1秒,其他语言2秒
空间限制:C/C++32768K,其他语言65536K
64bit IO Format:%lld
题目描述:
输入一个正整数n,求n!(即阶乘)末尾有多少个0?比如:n=10;n!=3628800,所以答案为2
输入描述:
输入为一行,n(1≤n≤1000)
输出描述:
输出一个整数,即题目所求
示例1(输入输出示例仅供调试,后台判题数据一般不包含示例)
输入:
10
输出:
2
AC代码:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int a,b;
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
int cnt = i;
while (cnt % 2 == 0 && cnt)
{
a++;
cnt /= 2;
}
while (cnt % 5 == 0 && cnt)
{
b++;
cnt /= 5;
}
}
cout << min(a, b) << endl;
return 0;
}