Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
这个是我的代码,但是超时
class Solution { public: int trailingZeroes(int n) { if (n <= 4) return 0; int count = 0; int multi = 1;//计算所需内容累乘的积 for (int i = 5; i <= n; i += 5) { multi *= i; while (multi % 5 == 0) { multi /= 5; count++; } } return count; } };
网上抄的别人的答案
class Solution {
public:
int trailingZeroes(int n)
{
int c = 0;
for( ; n > 4; c += (n/=5) );
return c;
}
};
class Solution { public: int trailingZeroes(int n) { int c = 0; for( ; n > 4; c += (n/=5) ); return c; } };
时间: 2024-10-15 00:11:10