Problem M: 有多少个0
Time Limit: 1 Sec Memory Limit: 16 MBSubmit: 438 Solved: 57
[Submit][Status]
Description
求1*2*3*……*n的乘积以多少个0结尾。
Input
输入为多行,至EOF结束。每行为一个整数n,n<=100000。
Output
输出每个n对应的结尾0的个数。
Sample Input
10 100 1000 10000
Sample Output
2 24 249 2499
题解:本来一个水题,期末考试的时候只想考虑把数算出来,看样例感觉跟4有关,所以沉入无法自拔。实际上出0是2和5的乘机,即可以理解为2和5的最小值,即等价于5的最小值。那么可以转化为含有因子5的个数,还是自己菜。orz
ac代码
#include<iostream>
using namespace std;
int main()
{
int t,n,num;
while(cin>>n)
{
num=0;
for(int i=1;i<=n;i++)
{
t=i;
while(t%5==0)
{
t/=5;
num++;
}
}
cout<<num<<endl;
}
return 0;
}
using namespace std;
int main()
{
int t,n,num;
while(cin>>n)
{
num=0;
for(int i=1;i<=n;i++)
{
t=i;
while(t%5==0)
{
t/=5;
num++;
}
}
cout<<num<<endl;
}
return 0;
}