存档
-
求N!的二进制表示中最低位1的位置
编程之美是这样讲的
1
2
3
4
5
6
7
8
9
10
int lowestOne(int N)
{
int Ret = 0;
while(N)
{
N >>= 1;
Ret += N;
}
return Ret;
}我的想法比较简单,利用位左移作,比如1010,左移3次就变成0了,所以要求的最低位1的位置 = 4 – 3
代码如下1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#define INT_LENGTH (32)
int main(void){
unsigned int [...]2009年12月21日 | 归档于 C
最新评论