首页 > 代码库 > Factorial Trailing Zeroes
Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
只有2 * 5才会产生0只要计算出因子中2和5的个数取小的的那个就好了
1 public class Solution { 2 public int trailingZeroes(int n) { 3 int numsOf2 = 0; 4 int numsOf5 = 0; 5 for(int i = 2; i <= n; i++){ 6 numsOf2 += get2nums(i); 7 numsOf5 += get5nums(i); 8 } 9 return numsOf2 < numsOf5 ? numsOf2 : numsOf5;10 }11 12 /**13 * 计算num中2作为乘积因子的个数14 * @param num15 * @return16 */17 private int get2nums(int num){18 int numsOf2 = 0;19 if(num % 2 != 0)20 return 0;21 else{22 while(num % 2 == 0){23 num = num / 2;24 numsOf2 ++;25 }26 }27 return numsOf2;28 }29 30 /**31 * 获取5的个数32 * @param num33 * @return34 */35 private int get5nums(int num){36 int numsOf5 = 0;37 if(num % 5 != 0)38 return 0;39 else{40 while(num % 5 == 0){41 num = num / 5;42 numsOf5 ++;43 }44 }45 return numsOf5;46 }47 }
Factorial Trailing Zeroes
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。