#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,还是有点麻烦,不够简洁。

我们草稿纸上画一个1~N的坐标轴,看看有多少个能分成多少个长度为5的段,再看看有多少个能分成多少个长度为5*5的段.......(以此类推,直到大于长度大于N)。

将每次计算得出答案的总和就是我们的答案了。

代码:

#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\n", s);

    return 0;
}
听说,点赞的人题题AC,快试试吧!

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

猜你喜欢

转载自www.cnblogs.com/Attacking-vincent/p/12767434.html