首页 > 其他 > 详细

LeetCode – Refresh – Factorial Trailing Zeroes

时间:2015-03-19 09:58:51      阅读:248      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!