[Algorithm] 2. Trailing Zeros
程序员文章站
2022-05-28 20:02:28
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 }
上一篇: PHP 高级编程(4/5)
下一篇: 网络域名解析过程