总结

1. 使用加法解决指数问题时, 可用背包问题的变形

2. 题目用到的公式和求解 1~N 中 1 出现的次数的公式类似

题目

1. 给定一个整数 N, 那么 N 的阶乘 N! 末尾有多少个 0 呢

2. 求解 N! 的二进制表示中最低位 1 的位置

思路

1. 第一道题相当于求解 N! 分别是 2^a 和 5 ^b, 第二道题是 2^a

2. 公式: Z = [N/5] + [N/5^2] +... [N/5] 表示不大于 N 的数中 5 的倍数贡献一个 5, [N/5^2]表示不大于 N 的数中, 5^2 再贡献一个5

2. 但第一题有一个可以优化的地方, 因为 b < a, 所以只要关注 5^b 即可

代码

int ret = 0;
while(N) {ret += N/5;N /= 5;
}int ret = 0;
while(N) {N >>= 1;ret += N;
}

  

转载于:https://www.cnblogs.com/xinsheng/p/3564615.html

编程之美 set 1 不要被阶乘吓倒相关推荐

  1. 编程之美2.2 不要被阶乘吓倒

    开始看到这道题目的时候,我还以为是利用字符串表示整型数的思想,后来一看,由于是一个数的阶乘,那么,如果这个数本身就很大,那么,即使是利用字符串表示也是不合理的,所以,看了下这道题的解释,书中给出了一个 ...

  2. 编程之美系列之一——阶乘的运算

    前言:       本人一直以来都对算法很有兴趣,前些日子拿到<编程之美>这本书,爱不释手,遂有意将书中的一些本人觉得较有意思的题目以及自己的心得拿出来与大家分享,共同讨论,共同进步. 需 ...

  3. 学习思考之《编程之美》.

    一.智者说:无聊的时候来几道算法题,可以训练训练自己的思维嘛!难怪之前人家说数学好的人编程起来事半功倍,写算法的过程中真是深有体会啊!感觉就像是在做大学的高数题......本博文仅用来记录自己学习算法 ...

  4. 《编程之美》读书笔记19: 3.9 重建二叉树

    <编程之美>读书笔记19: 3.9 重建二叉树 对根节点a以及先序遍历次序P和中序遍历次序I,查找a在I中的位置,将I分为两部分,左边部分的元素都在a的左子树上,右边的元素都在a的右子树上 ...

  5. 编程之美计算0到N中包含数字1的个数

    转自:http://blog.csdn.net/hongjuntu123/article/details/8743266 有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现&qu ...

  6. 《编程之美》读书笔记08:2.9 Fibonacci序列

    <编程之美>读书笔记08:2.9 Fibonacci序列 计算Fibonacci序列最直接的方法就是利用递推公式 F(n+2)=F(n+1)+F(n).而用通项公式来求解是错误的,用浮点数 ...

  7. [搜索]字符串的相似度问题-从编程之美说起

    在<编程之美>之3.3讲到了计算字符串的相似度,请看下图 原文作者做了很详细的解释,有兴趣的朋友可以参考原文. 其实,总结为一点,是求两个字符的编辑距离,关于编辑距离,可以参考这儿 htt ...

  8. java并发编程之美-阅读记录1

    1.1什么是线程? 在理解线程之前先要明白什么是进程,因为线程是进程中的一个实体.(线程是不会独立存在的) 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程中的 ...

  9. 【编程之美】金刚坐飞机问题

     题目描述 现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机.突然来了一只大猩猩(金刚).他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了.根据社 ...

最新文章

  1. oracle存储过程00054,oracle执行存储过程报错:ORA-12011
  2. 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用
  3. samba linux文件服务器 changepassword + httpd 实现用户web自行修改密码
  4. winform模拟登陆网页_winform跳转到制定的网页并自动实现登陆功能
  5. VC++编译libpng
  6. 实施SAP:资源和进度
  7. Kotlin实战指南十六:Synchronized、Volatile
  8. QT的QStandardItemModel类的使用
  9. Codeforces Round #607 (Div. 2) E. Jeremy Bearimy dfs + 思维
  10. c/c++面试试题(二)
  11. h264的码率控制 JVT-G012
  12. ros melodic 版本sudo rosdep init和rosdep upgrade失败的解决办法
  13. Linux Ubuntu系统下载安装NCL
  14. 中国钢铁物流行业发展策略分析及投资建议咨询报告2021-2027年
  15. 二元一次方程有唯一解的条件_线性方程组在什么时候有唯一解/无穷个解/无解?...
  16. [Luogu3554] Poi2013 Triumphal arch
  17. [iOS]Xcode8 搭建 .framework
  18. html如何适配设备高度,css怎样自适配屏幕高度?
  19. Android 移动网络接入点名称(APN)
  20. 绘制系列(五)-DrawText()详解

热门文章

  1. 对付ajax ,配置selenium+phantonjs
  2. gitbook安装与使用之windows下搭建gitbook平台
  3. 【转载】十年学会编程
  4. Undefined exploded archive location Tomcat之项目不能发布
  5. windows server 2012 RC download.
  6. 本人开源项目 Lu-Rpc
  7. 开发基础(字符编码、列表操作)
  8. JavaScript中Map的应用及Map中的bug
  9. 前向渲染路径细节 Forward Rendering Path Details
  10. 自定义方法中英文字符截取