算法
TangShangWen
这个作者很懒,什么都没留下…
展开
-
给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
题目:给定一个整数N,那么N的阶乘N!末尾有多少个零呢?末尾有几个零?如果我们从哪些数相乘可以的出10,这个角度来解决这个问题,这就会变成简单。对质因数进行分解由于10=2*5,即每一对2和5就可以产生一个10,如果我们求出N!中,2和5的分别的次方数,假设为X,Z,取决于两个数中最小的那个数,于是有公式,M=min(X,Z),M为零的个数,由于在阶乘中,2出现的概率比5的高,所以公式原创 2013-10-03 21:57:19 · 2578 阅读 · 0 评论 -
求二进制中1的个数
题目:求二进制中1的个数实现这个题目的方式有很多,求余的那种方法不在这里描述方法一:对value中的数和00000001相与,当最低位为1时,相与为1,因此num+=1,最低位为0时,num+=0, 然后每次右移一位,重复进行操作,直至整个value为0时跳出循环,返回计数值缺点:程序主要是计算二进制中一的个数,这个程序把零的操作也计算进去了publ原创 2013-10-03 16:23:03 · 1284 阅读 · 0 评论 -
给定两个正整数A和B,把A变成B需要几位?也就是说A和B之间的位数有多少个是不同的?
给定两个正整数A和B,把A变成B需要几位?也就是说A和B之间的位数有多少个是不同的?本文的解决思路来自于互联网和一些自己的理解:编程语言为:Java首先求出两个数有多少个位数是相同的,即求出A和B的交集其次,求出A和B一共在占了几位在同一个数中,即求出A和B的或运算再次,对上面的结果进行异或,原理就是在A和B一共所占的位数(或运算)减去相同的(交运算)然后在对得出的原创 2013-10-03 17:21:34 · 2297 阅读 · 2 评论