末尾0的个数

题目描述

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2

输入描述:

输入为一行,n(1 ≤ n ≤ 1000)

输出描述:

输出一个整数,即题目所求

示例1

输入

复制

10

输出

复制

2

解析:

能被5(5^1)整除的提供1个0

能被25(5^2)整除的提供2个0

能被125(5^3)整除的提供3个0

能被625(5^4)整除的提供4个0

所以 结果= n/5 + n/25 + n/125 + n/625 + ···

   while(cin>>num)
    {
        int ans = 0;
        while(num)
        {
            ans += num/5;
            num /= 5;
        }
        cout<<ans<<endl;
    }

 


版权声明:本文为leetcodecl原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。