zoukankan      html  css  js  c++  java
  • #4018. 统计n! 尾部零

    题目出处:

    http://www.51cpc.com/problem/4018

    题目描述

    试统计正整数n的阶乘n!=1×2×3×…×n尾部连续零的个数。

    输入格式

    输入正整数n

    输出格式

    输出个数

    样例

    Sample input

    2015
    

    Sample Output

    502

    题目思路:

    尾部零,就是看乘积中能组成10的个数有多少个,可以是1*10、2*5。我们在前N个数中,能够拆分得到2的个数比5多,然后我们只要看有多少个数能拆分得到5就行了,这样恰好就包含了1*10的情况。

    这样这个问题就变成了前N个数中有多少个数能拆分得到5。

    也就是算前N个数中,是5的倍数的个数+是5*5的倍数的个数+是5*5*5的倍数的个数.....(以此类推)(5^x小于等于N)

    为了描述的更清楚,我们可以在草稿纸上画一个1~N的坐标轴,每次圈出5的倍数的点(比如说5、10、15.......),再圈出5*5的倍数的点.......(以此类推)。

    这样,我们发现5只划记了一次,25就划记了两次……刚好把每个数出现的次数表示出来了。

    代码:

    #include <stdio.h>
    int main()
    {
        int n, s = 0, t = 1;
        scanf("%d", &n);
    
        while (t <= n)
        {
            t = t * 5;
            s = s + n / t;
        }
    
        printf("%d
    ", s);
    
        return 0;
    }
    听说,点赞的人题题AC,快试试吧!

    此题为分支,根部网址:  https://www.cnblogs.com/Attacking-vincent/p/12721609.html   

  • 相关阅读:
    Android 逐帧动画
    MAP getLastKnownLocation()返回null的解决
    大数取余
    (a^b)%c和(a/b)%c
    HDU1046 Gridland
    顺序入栈的出栈方法种数
    HDU1021 Fibonacci Again
    HDU1019 Least Common Multiple
    HDU1018 Big Number
    HDU1013 Digital Roots
  • 原文地址:https://www.cnblogs.com/Attacking-vincent/p/12767434.html
Copyright © 2011-2022 走看看