算法
bnuf
这个作者很懒,什么都没留下…
展开
-
位运算
(1)如何判断一个整数是不是二的整数次幂if(n<0) m=-n;else m=n;if(m&(m-1)) return falseelse return true;(2)求整数二进制表示中1的个数分析:对于正数,直接不断右移计算,判断最低位是否为1,然后累加就行了。但对于负数则会出现死循环(见参考1)。参考1中的解决方法是用 2^k 对该整数的第k位是否是1进行检测,该方法原创 2013-01-03 11:00:25 · 389 阅读 · 0 评论 -
左旋转数组
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。思路:如左旋转2位,则先“反转”这2位,然后“反转”剩下的N-2位,最后“反转”全部N位。 /// /// 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 /// 如把字符串abcdef左旋转2位得到转载 2013-01-11 18:54:06 · 505 阅读 · 0 评论 -
求1到n的所有正整数中1出现的次数
分析:设n的位数为L。1到n的所有整数中1的个数由以下(1)(2)两部分构成(1)长度小于L的所有正整数中的1 包含i个1的数有 C(i, L-1)*9^(L-1-i)个,其中包含0个1的情况中有这个数字是0的情况,不过不影响对1的计数。故长度小于L的所有正整数中1的个数为C(i, L-1)*9^(L-1-i)*i(2)长度为L且小于n的所有正整数中的1原创 2013-01-23 08:52:39 · 1040 阅读 · 0 评论