算法与数据结构
I丶Lit
这个作者很懒,什么都没留下…
展开
-
求二进制数中1的个数
Q:对于一个字节(8bit)的无符号整型变量,求其二进制表中“1”的个数,要求算法的执行效率尽可能高。 解法1 对于二进制操作,对一个二进制数除以一个2,原来的数字会减少一个0。如果除的结果中有余,那么就表示当前位置有一个1。 int Count(BYTE v){ int num = 0; while (v) { if (v % 2 ==1){原创 2017-06-30 13:37:45 · 226 阅读 · 0 评论 -
阶乘问题
问题1.给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3628800,N!的末尾有两个0. 问题分析 碰到这个问题,有些人可能回想:是不是要完整计算出N!的值?实际上可以从“哪些数相乘能得到10”这个角度来考虑,问题就变得简单了。 首先考虑,如果N!=K×10M且K不能被10整除,那么N!末尾有M个0。再开率对N!进行因数分解,N!=(2X)× (3Y)×原创 2017-07-03 15:10:20 · 363 阅读 · 0 评论