/*
  * Problem 172: Factorial Trailing Zeroes
  * Given an integer n, return the number of trailing zeroes in n!.
  * Note: Your solution should be in logarithmic time complexity.
  */

  /*
   * Solution 1
   * 对于每一个数字,累计计算因子10、5、2数字出现的个数,结果等于10出现的个数,加上5和2中出现次数较少的
   * 改进:5出现的次数一定大于2出现的次数,因此只需要统计因子10和5出现的次数。进一步衍生为只统计5出现的次数。
   * 改进:讲循环控制的步长改为5
   */
 int trailingZeroes(int n) {
     ;
     ;
     ;

     int temp;
     ; i--) {
         temp = i;
         ) {
              == ) {
                 number10++;
                 temp = temp/;
             }  == ) {
                 number5++;
                 temp = temp/;
 //            } else if (temp % 2 == 0) {
 //                number2++;
 //                temp = temp/2;
             } else {
                 break;
             }
         }
     }
     return (number5>number2?number2:number5)+number10;
 }

 /*
  * Solution 2
  * 根据上面分析,只需要统计所有数字中因子5出现的次数
  */
 int trailingZeroes(int n) {
     ;
     ;
     ) {
         result += temp;
         temp = temp/;
     }
     return result;
 }

最新文章

  1. Java并发编程学习笔记(一)——线程安全性
  2. IE9的css hack
  3. JTA事务管理--配置剖析(二)
  4. IP-MAC绑定导致网络故障
  5. chinaOS
  6. Python进阶之函数式编程(把函数作为参数)
  7. Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
  8. Spring基础学习(五)—事务管理
  9. primer漏配问题解决
  10. 线段树(segment_tree)
  11. Java使用线程并发库模拟弹夹装弹以及发射子弹的过程
  12. 2018.09.14 bzoj2982: combination(Lucas定理)
  13. Python download a image (or a file)
  14. 15、Java并发编程:Callable、Future和FutureTask
  15. MyBatis框架的使用及源码分析(九) Executor
  16. go语言的排序、结构体排序
  17. HDU1281(二分图最大匹配,棋盘建图,找关键点)
  18. 02 mybatis环境搭建 【spring + mybatis】
  19. nginx 不能解析php怎么办
  20. Erlang generic standard behaviours -- gen_server system msg

热门文章

  1. 解决ios上微信无法捕获返回键按钮事件的问题
  2. Java 的zip压缩和解压缩
  3. background-position 使用方法具体介绍
  4. 【思路题】【多校第一场】【1001.OO’s Sequence】
  5. ECSHOP用户评论
  6. Charles的使用教程
  7. JS--Div中数据滚动到最后一条重新从头开始滚动
  8. oracle 通过透明网关gateway 连接sqlserver
  9. C#的Socket编程
  10. bootstrap之 Badge 角标