LeetCode-172 阶乘后的零

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes

题目描述

给定一个整数 n ,返回 n! 结果中尾随零的数量。

提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1

 

示例 1:

输入:n = 3
输出:0
解释:3! = 6 ,不含尾随 0
示例 2:

输入:n = 5
输出:1
解释:5! = 120 ,有一个尾随 0
示例 3:

输入:n = 0
输出:0
 

提示:

0 <= n <= 104

 

解题思路

简单题,0的个数就是因数10的个数,我们没必要算出真正的阶乘结果,只要找到结果中2和5的个数,而阶乘中2肯定比5多,所以统计5的个数,就可以得到结果。

代码展示

class Solution {
public:
    int trailingZeroes(int n) {
        if(n == 0) return 0;
        int Count5 = 0;
        for(int i = 1; i <= n; i ++)
        {
            int j = i;
            while(!(j % 5))
            {
                Count5++;
                j /= 5;
            }
        }
        return Count5;
    }
};

 

运行结果

 

 

posted @ 2022-03-25 10:54  过客匆匆,沉沉浮浮  阅读(36)  评论(0)    收藏  举报