【算法】计算n阶乘中尾部0的个数
题目
设计一个算法,计算出n阶乘中尾部零的个数样例
11! = 39916800,因此应该返回 2挑战
O(logN)的时间复杂度
题目分析
n阶乘中,尾部出现的零是10和10的倍数相乘的结果,尾部出现多少个零,其实就是在n阶乘中有多少个10相乘,10的公因数除了1与10,就只剩下2与5,所以出现10其实是2与5相乘
因此,尾部出现的零就是5和偶数相乘的结果,在n阶乘中,偶数的个数要比5个数多得多,所以尾部零的个数就为多少个5相乘的个数(10看做2x5即一个5,25看做两个5…)
以n=100为例
1x2x3x4x5x6x7x8x9x.........x98x99x100
这些数中每5个数将会出现一个5的倍数,一共出现temp1 = 100/5 =20
5x10x15x20x25x30x......x90x95x100
我们将这些数提取出一个5
5(1x2x3x4x5....x17x18x19x20)
括号中20个数出现5的倍数的个数为temp2 = 20/5 =4
5x10x15x20
再提取5,此时括号已经没有5的倍数,即temp3 = 0
5(1x2x3x4)
所以总的个数为temp = temp1+ temp2 = 14
综上,程序循环到temp = 0时,程序结束
用C语言程序实现为
#include<stdio.h>
int main()
{long num=0,temp;temp = n/5;while(temp!=0){num = num+temp;temp = temp/5;}return 0;
}
【算法】计算n阶乘中尾部0的个数相关推荐
- python计算n阶乘中尾部零的个数_(Java)设计一个算法,计算出n阶乘中尾部零的个数...
展开全部 long 类型对大数阶乘来e68a8462616964757a686964616f31333365633963说存储范围大小,强行使用会溢出,可以使用 BigDecimal. 代码如下:im ...
- python计算n阶乘中尾部零的个数_计算n阶乘中尾部零的个数
写在前面 本来觉得问题挺容易的,不打算记录,谁知道一不小心,还真没做出来.最终凭借"朴实"的算法思想解决了问题,但是其中的曲折还真是汗颜.科学的思维指导确实必不可少,"野 ...
- 计算n阶乘中尾部零的个数
计算因数5的个数即可 long long NumOfZero(long long n){long long count=0;while(n>0){count+=n/5;n=n/5;}return ...
- 判断N!阶乘中末尾0的个数
如果我们要判断出0的个数,如果我们直接求N!那么数据会很大,数据可能溢出, 那么为了得到0的个数我们知道可以从10的角度进行判断,如果我们知道N!中10的个数, 我们就可以判断出0的个数, 如果N!= ...
- 求1000的阶乘尾部0的个数
第一种方法: 算出1000!中所有0的个数: /***求1000!中所有的0*/private static void demo1() {BigInteger bi1 = new BigInteger ...
- 整数阶乘尾部0的个数
求解整数阶乘尾部0的个数主要是算出有多少个5及其倍数,因为这些数与偶数相乘会产生0,以100!的阶乘举例 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 ...
- Python_计算一个数的阶乘并统计尾部0的个数
def getNum(num):# 计算阶乘result = 1for i in range(1, num+1):result *= i# 统计尾部0的个数str1 = str(result)str2 ...
- 求一个整数的阶乘结果中后缀0的个数
问题描述: 给一个整数,请输出该数字阶乘的后缀0的个数,例如: 数字7,它的阶乘为5040,后面有一个0,则输出1:还有数字10,它的阶乘为3628800,后面有两个0,则输出2. /* 功能:求一个 ...
- 计算 n! 中末尾0的个数 求n!中p的重数
题意: 输入正整数n,计算 n! 中末尾0的个数 输入:输入一个正整数n (1≤n≤1 000 000 000) 输出:输出 n! 末尾0的个数 样例输入:3 100 1024 样例输出:0 24 2 ...
最新文章
- VC提前注入.net软件的方法
- TensorFlow入门(三)多层 CNNs 实现 mnist分类
- AI“双子星”同日联动:DeepMind加速编程自动化,OpenAI新方法解开2道国际奥数题...
- Unity发布WebGL时如何修改默认的载入进度条sf?
- Python 实现有道翻译命令行版
- for循环一定要指定键么 vue_vue的for循环使用方法
- Javascript中字符串输出html的动态链接
- SAP云平台开发权威指南的目录
- C++实现dijkstra单源最短路径算法-邻接表+优先队列
- C语言在STM32中的内存分配
- python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...
- php结构的项目,ThinkPHP修改项目结构
- 网站建设中常见的21个漏洞及预防方法
- Oracle10g 详细安装教程
- 为什么我们需要PRINCE2认证——上海信息化培训中心
- 正交设计助手的使用教程(设计测试用例的工具)
- UE4 蓝图通信:接口调用
- Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法
- nginx配置https后报错nginx: [emerg] https protocol requires SSL support in XXX.conf详细解决方法
- Utility工具类:
热门文章
- WPS本地镜像化在线文档操作以及样例
- 视频接口之AV、S端子、VGA、DVI、HDMI、DP
- 基于oAuth2.0开发属于自己的SSO授权服务 - 授权码(Authourization Code)模式 (持续更新中。。。)
- PostgreSQL创建空间数据库
- org.apache.jasper.JasperException:无法为JSP编译类:(已解决)
- 【金猿产品展】亚信科技AISWare Onta KG知识图谱工具——一站式全流程知识计算管理平台...
- 从头写一个超过zip的压缩算法(11):最终篇:优化压缩后的文件大小(7):deflate的滑动窗口
- 计算机半年没用为啥启动不了机,浅析win7系统电脑很久没用开不了机的原因及解决措施...
- JavaSE第6篇:面向对象
- VR全景加盟要注意什么,全景加盟如何选择?