Lintcode2 Trailing Zeros solution 题解
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,【题目描述】Write an algorithm which computes the number of trailing zeros in n factorial.设计一个算法,计算出n阶乘中尾部
千家信息网最后更新 2025年12月04日Lintcode2 Trailing Zeros solution 题解
【题目描述】
Write an algorithm which computes the number of trailing zeros in n factorial.
设计一个算法,计算出n阶乘中尾部零的个数。
【题目链接】
http://www.lintcode.com/en/problem/trailing-zeros/
【题目解析】
传统解法是首先求出n!,然后计算末尾0的个数。(重复÷10,直到余数非0)该解法在输入的数字稍大时就会导致阶乘得数溢出,不足取。
O(logn)解法:一个更聪明的解法是考虑n!的质数因子。后缀0总是由质因子2和质因子5相乘得来的。如果我们可以计数2和5的个数,问题就解决了。考虑下面的例子:
n = 5: 5!的质因子中 (2 * 2 * 2 * 3 * 5)包含一个5和三个2。因而后缀0的个数是1。
n = 11: 11!的质因子中(2^8 * 3^4 * 5^2 * 7)包含两个5和三个2。于是后缀0的个数就是2。
我们很容易观察到质因子中2的个数总是大于等于5的个数。因此只要计数5的个数就可以了。那么怎样计算n!的质因子中所有5的个数呢?一个简单的方法是计算floor(n/5)。例如,7!有一个5,10!有两个5。除此之外,还有一件事情要考虑。诸如25,125之类的数字有不止一个5。例如,如果我们考虑28!,我们得到一个额外的5,并且0的总数变成了6。处理这个问题也很简单,首先对n÷5,移除所有的单个5,然后÷25,移除额外的5,以此类推。
【参考答案】
http://www.jiuzhang.com/solutions/trailing-zeros/
个数
因子
解法
后缀
题目
三个
两个
数字
问题
阶乘
聪明
不足取
以此类推
事情
传统
余数
例子
单个
就是
尾部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库er图的注意
实时数据服务器
电子表格导出表单数据库
软件开发中的业务代表什么
微众数据库怎么使用
数据库相关工作视频
厦门天天分享网络技术
罗永刚网络安全
云鸟科技 互联网创业公司
应用数据库连接服务器架构
网络安全法中媒体责任
战地4服务器列表
如何严格落实网络安全工作
云服务器 代码安全吗
上海华杰科技互联网
数据库技术及应用 贾铁军
ps5 实况无法连接服务器
网门网络技术公司
二手工程机械管理软件开发平台
嵌入式软件开发 系统架构
东营行业专业软件开发
crt 访问数据库
百姓英雄之网络技术员对战特警
信息安全与网络安全的就业哪个好
中国美国互联网科技
独占方式打开数据库是什么意思
腾讯超级会员数据库
数据库的数据实时更新
服务器端跳转
望城软件开发中职学校