首页 > 其他 > 详细

技巧 逐个算 期末致死题-------有多少个0

时间:2020-04-09 19:32:01      阅读:52      评论:0      收藏:0      [点我收藏+]

Problem M: 有多少个0

Time Limit: 1 Sec  Memory Limit: 16 MB
Submit: 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;
}

技巧 逐个算 期末致死题-------有多少个0

原文:https://www.cnblogs.com/Joe2019/p/12669002.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!