- 阶乘后的零
给定一个整数 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
题解
直接开long long暴力运算,因为是尾部的0,所以取模10000000就行,因为前面部分的数字根本不会影响到后面0的个数。
AC代码
class Solution {
public:
typedef long long ll;
int trailingZeroes(int n)
{
ll base=1;
int ans = 0;
for(int i=1;i<=n;i++)
{
base *= i;
while(base%10 == 0)
{
ans ++;
base/=10;
}
base %= 10000000;
//cout<<i<<" "<<base<<endl;
}
return ans;
}
};