当前位置: 首页 > article >正文

常见面试题之 1000的阶乘后面有多少个0

 

阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。

一个正整数的阶乘factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。

简化而来N的阶乘尾数有多少个0,如果简单的用暴力算法 直接递归乘然后截取后面的尾数的0,N小的时候是可以的,如果N很大的时候显然是不现实的。

末尾0的个数就是指这个数总共有几个10因子,而10又能表示成2和5的乘积。假设m=n!,那么m中2的因子个数肯定大于5的因子个数,所以m中5的因子个数即是所要求结果。

     令f(x)表示正整数x末尾所含有的“0”的个数,则有:
      当0 < n < 5时,f(n!) = 0;
      当n >= 5时,f(n!) = k + f(k!), 其中 k = n / 5(取整)。

function  getZeroNums (ntotal) {if(ntotal<5) return 0;else{ntotal =parseInt(ntotal/5);return ntotal+getZeroNums(ntotal);}
}var nums=1000;
console.log(getZeroNums(nums));

输出

249

http://www.lryc.cn/news/2418466.html

相关文章:

  • lsass.exe和smss.exe病毒专杀工具——即磁碟机病毒专杀工具(转载)
  • VS2005 SP1补丁下载与安装
  • VC++路径
  • 安卓表格布局android:collapseColumns,android:shrinkColumns和stretchColumn
  • Linux mail 命令(smtp.163.com)
  • oracle number()类型,ORACLE NUMBER类型详解
  • JavaVM和JNIEnv
  • [教程]Smarty 入门
  • 强烈推荐10本程序员必读的书
  • 2012互联网公司年会美女大盘点
  • [刷机教程] 刷中文recovery V880最简单的刷机教程,更新recovery,修复若干BUG,支持最新ROM
  • PHP+APACHE+MYSQL
  • 新闻事件营销
  • unit5:数据库
  • 怎么完全卸载赛门铁克_卸载Symantec Endpoint Protection, 无需password的卸载方法
  • 数据结构与算法知识要点简明教程(合集)
  • ROUTE.EXE文件丢失导致程序无法运行问题
  • 用Ajax方式提交form表单
  • C/C++生态工具链——单元测试工具Catch2简介
  • java jdbc reparecall_JDBC学习笔记
  • RO11 -用RemObjects SDK创建异步调用客户端
  • Windows7系统sfc_os.dll文件丢失问题
  • 常见游戏外挂分类及原理概述
  • 播放器比的就是画质
  • 电脑回收站无法清空:原因及解决方案大揭秘
  • myeclipse部署时An internal error occurred 错误的几种情况
  • verilog实现多周期处理器之——(六)简单算数操作指令的实现
  • 本人跑fedora 13的烦恼
  • java定时器Timer 类的使用及Timer already cancelled问题解决
  • Apache License Version 2.0中文翻译版