`
guiqing85
  • 浏览: 162698 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

求N!的结果末尾有多少个零

阅读更多
求N!的结果末尾有多少个零
private static int numOfZero(int n) {
   int count = 0;
   int data = 1;

   for (int i = 1; i <= n; i++) {
    data = data * i;
    while (data % 10 == 0) {
     count++;
     data = data / 10;
    }
    data = data % 10;// 只保留个位数字,因其它位数字对0的个数无影响
   }
   return count;
}

分享到:
评论
1 楼 chyanog 2010-08-27  
data = data % 10
纯属多余,这样就错了。事实上,这种算法比较低效,而且处理范围大了就会溢出
简单的方法:
f[n_] := Sum[Floor[n/5^i], {i, Floor@Log[5, n]}]

相关推荐

Global site tag (gtag.js) - Google Analytics