Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
1 public class Solution { 2 public int trailingZeroes(int n) { 3 if (n <= 1) { 4 return 0; 5 } 6 long c2=0; 7 long c5=0; 8 for (int i = n; i > 1; i--) { 9 int k=i; 10 while (k % 5 == 0) { 11 c5++; 12 k = k / 5; 13 } 14 while (k % 2 == 0) { 15 c2++; 16 k = k / 2; 17 } 18 } 19 return (int) Math.min(c2, c5); 20 } 21 }
本文提供了一种计算给定整数n的阶乘中尾随零的数量的方法,并确保解决方案的时间复杂度为对数级别。通过遍历从1到n的所有整数并检查每个数包含多少个2和5的因子来实现。
219

被折叠的 条评论
为什么被折叠?



