C++面试宝典第25题:阶乘末尾零的个数

题目

        给定一个整数n,返回n!(n的阶乘)结果尾数中零的个数。

        示例 1:

输入:3 输出:0
解释:3! = 6,尾数中没有零。

        示例 2:

输入:5 输出:1
解释:5! = 120,尾数中有1个零。

C++面试宝典第25题:阶乘末尾零的个数_第1张图片

解析

        这道题主要考察应聘者对于数学问题的分析和理解能力,以及在多个解决方案中,寻求最优解的能力。

        如果这道题对于算法的时间复杂度没有要求的话,我们可以直接计算n的阶乘,然后统计结尾零的个数即可。具体的实现,可以参考下面的示例代码。

#include 
using namespace std;

unsigned int GetFactorialTailZeros(unsigned int uiNumber)
{
    unsigned int uiFactorial = 1;
    for (unsigned int i = 1; i <= uiNumber; i++)
    {
        uiFactorial *= i;
    }

    unsigned

你可能感兴趣的:(C++面试宝典100题,c++,面试,算法)