[Algorithm] 2. Trailing Zeros
程序员文章站
2023-01-28 15:11:07
Description Description Write an algorithm which computes the number of trailing zeros in n factorial. Example 11! = 39916800, so the out should be 2 ......
description
write an algorithm which computes the number of trailing zeros in n factorial.
example
11! = 39916800, so the out should be 2
challenge
o(log n) time
answer
1 /* 2 * @param n: a long integer 3 * @return: an integer, denote the number of trailing zeros in n! 4 */ 5 long long trailingzeros(long long n) { 6 // write your code here, try to do it without arithmetic operators. 7 if(n<5){ 8 return 0; 9 } 10 else{ 11 return n/5 + trailingzeros(n/5); 12 } 13 }
tips
this solution is implemented by a recursive method, we can also use a loop method to solve this problem.
1 /* 2 * @param n: a long integer 3 * @return: an integer, denote the number of trailing zeros in n! 4 */ 5 long long trailingzeros(long long n) { 6 // write your code here, try to do it without arithmetic operators. 7 long long result = 0; 8 while ( n > 0) 9 { 10 result += n/5; 11 n /= 5; 12 } 13 14 return result; 15 }