题目

用十进制计算30!(30的阶乘),将结果转化成3进制进行表示的话,该进制下的结果末尾会有多少个0?

https://www.nowcoder.com/questionTerminal/14f881b32735445bb2af3494ce5f0e17?orderByHotValue=0&pos=29

链接:https://www.nowcoder.com/questionTerminal/14f881b32735445bb2af3494ce5f0e17?orderByHotValue=0&pos=29
来源:牛客网

对于3进制,3的质因数为3,将30!的每个因子分解成质因数的形式,末尾0的个数就是质因数的3的个数。我们只考虑3的倍数,3、6、12、15、21、24、30每个数贡献1个3,9、18贡献2个3,27贡献个3,因此质因数3的个数为1*7+2*2+3*1=14个

链接:https://www.nowcoder.com/questionTerminal/14f881b32735445bb2af3494ce5f0e17?orderByHotValue=0&pos=29
来源:牛客网

计算N!下三进制结果末尾有多少个0,其实就是计算三进制中的3被移位了多少次,就像二进制一样,每乘以2就向左移一位,末尾补0,因此这道题只要将N!因式分解成3^m*other,m就是答案。
技巧性的解法就是m=N/3+N/(3^2)+N/(3^3)....+N(3^k) (k<=N/3),
用代码实现即为:
sum=0;
while(N){
sum+=N/3;
N=N/3;
}
return sum;

转载于:https://www.cnblogs.com/captain-dl/p/9975716.html

牛客:阶乘结果换算进制后得到数字的尾部有几个0相关推荐

  1. 怎么用计算机的计算器转换进位制,计算机进制换算(进制转换计算器)

    我想知道进制的转换方法, 8 16 10进制转换成2进制都是除2. 但其他进制之间. 进数转换:1.二进制数.十六进制数转换为十进制数(按权求和) 二进制数.十六进制数转换为十进制数的规律是相同的.把 ...

  2. Hutool 数字工具-NumberUtil使用(加减乘除,保留小数,格式化数字,是否为数字,随机数,整数列表,阶乘,平方根,最大公约数和最小公倍数,进制转换,比较大小,去除多余的0)

    数字工具针对数学运算做工具性封装. 1 加减乘除 四种运算都会将double转为BigDecimal后计算,解决float和double类型无法进行精确计算的问题.这些方法常用于商业计算. //针对数 ...

  3. 牛客题霸 [二进制中1的个数] C++题解/答案

    牛客题霸 [二进制中1的个数] C++题解/答案 题目描述 输入一个整数,输出该数32位二进制表示中1的个数.其中负数用补码表示. 题解: 判断1的个数 x&(-x)=2^k 有点类似于树状数 ...

  4. 第H题 输入N求N的阶乘的10进制表示的长度

    输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Sample Input 6 ...

  5. vc 文字转换到机内码,输入汉字和数字, 输出一串16进制码(数字-〉ASII码,汉字—〉国标码)...

    // 可以用,此程序实现的是是文字转换到机内码.机内码=国标码+8080H,不过学习了.//此程序是利用汉字在机器内输出就是机内码的原理,直接保存的,其实挺简单.//输入一串汉字和数字的混合字符, 经 ...

  6. 二进制转四进制计算机,二进制换算(进制转换计算器)

    二进制数01011010扩大2倍之后是多少?急求~ 先把它转换成为 10进制 变成90 变180 然后再转换成为2进制 10110100 我看了一下像是一道二进制的题 有谁知道答案帮帮忙 谢谢了 问着 ...

  7. 计算机13E怎么转换成十进制,十六进制换算(进制转换计算器)

    把下面的16进制转为10进制b35de1f058c72a7430241461cd504839dc27438e. 16进制转10进制16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第 ...

  8. 十进制转换为任意2~16进制||后附带小数的计算

    代码如下: 里面有三种方案,没被注释掉的是最简短的解法 #include <iostream> #include<algorithm> //反向排列(reverse函数)必要的 ...

  9. 1000的阶乘-HDU 1042-大数阶乘(万进制思想)

    思路: 即用数组a,数组中的每个元素存储4位数,, 比如,计算9的阶乘,在计算到7的阶乘时,7!为5040,可以用a[0]存储5040,没有产生进位,然后8!=5040*8=40320,如果看成万进制 ...

  10. Java的不同进制输出,[DanoR][Java小码][进制转换::将double转换为不同进制后用String输出]...

    功能简述 进制转换 输入: 一个数(double),目标进制(int)和小数的保留位数(int) 输出: 相应进制的表示方式(String) 参数说明 double number; //将要被转换的数 ...

最新文章

  1. 像“打游戏”一样用Numpy,试试?
  2. WEB 测试点总结
  3. 张亚勤:新范式、新架构和新模态突破传统算力,推动物理世界走向数字化
  4. SAP Spartacus org unit list点击item之后的页面跳转实现
  5. tron区块链php对接,Tron区块链技术 - Tron智能合约概述
  6. mysql 默认事务隔离级别_一文读懂MySQL的事务隔离级别及MVCC机制
  7. 使用Pytorch简单实现混合密度网络(Mixture Density Network, MDN)
  8. 新浪2017校园招聘---C++后台研发
  9. Jenkins的配置及使用
  10. 「力扣」509. 斐波那契数【动态规划】详解!
  11. 关于地统计的一些知识点
  12. 教你一步步实现一个虚拟摇杆
  13. 奈奎斯特判据的个人理解
  14. Lorenz系统、简单的Rossler系统和Chua电路系统的混沌吸引子——MATLAB实现
  15. PLL锁相环及其locked信号
  16. linux 文件系统架构
  17. android的listview分组显示的时候layout_marginTop失效的解决办法
  18. 用静息态fMRI映射人脑多巴胺能影像
  19. 2015年8月25号申请入驻一点资讯自媒体平台
  20. sql的sum函数(与group by,having子句混合使用)

热门文章

  1. 关注VS.Net 2005
  2. php伪随机数 ctf,[GWCTF 2019]枯燥的抽奖
  3. malloc 初始化_glibc: malloc、calloc、realloc amp; free
  4. cortex a7 a53_最美轿跑之一的奥迪A7,究竟有何魅力令人一眼定心
  5. mybatis获取自增主键的值
  6. 2018年英语计算机职称考试,2018年高级职称计算机考试内容介绍
  7. 如何制作通讯录vcf_【教程】刷机或更换手机后快速导入通讯录的方法
  8. LED的本质和发光原理是什么,彩色的LED灯是怎么做出来的
  9. python经典实例下载_python经典实例
  10. 3.2生产者和消费者(Producers and Consumers)