当前位置: 移动技术网 > IT编程>开发语言>C/C++ > [Algorithm] 2. Trailing Zeros

[Algorithm] 2. Trailing Zeros

2018年11月05日  | 移动技术网IT编程  | 我要评论

三大国粹,月梅汁,手机充值卡在哪批发

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     }

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网