码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode – Refresh – Factorial Trailing Zeroes

时间:2015-03-19 10:01:03      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

Think about that.. n! = n * (n-1) * (n-2) ..... *1

Zeros happened when each of them can be divided by 10. And 10 = 2 * 5. 2 is much more than 5 in the number mutilpication. Then just use 5 as the factor.

But one more thing need to notice:

Use n /= 5 for every loop instead of i += 5; It can overflow.

 1 class Solution {
 2 public:
 3     int trailingZeroes(int n) {
 4         int result = 0;
 5         for (int i = 5; i <= n; n /= 5) {
 6             result += n/i;
 7         }
 8         return result;
 9     }
10 };

 

LeetCode – Refresh – Factorial Trailing Zeroes

标签:

原文地址:http://www.cnblogs.com/shuashuashua/p/4349470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!