人较笨且记性不好,故记录在此.折叠代码打不开请F5.本博中很多是转载收录其他网友的文章(原文地址请见博文末尾),所有权为原作者所有!!!
此博客已不再更新和维护,欢迎关注我的github新博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

先看代码:

1 #include <stdio.h>
2
3  int fun(int x)
4 {
5 int count =0;
6 while(x)
7 {
8 count++;
9 x = x & (x-1);
10 }
11 return count;
12 }
13
14  void main(void)
15 {
16 int j =0;
17 int m =0;
18 j = fun(9999); // 此处“9999”只是一个举例
19  return;
20 }

 

你猜一下最后 “j”的值是多少? 这个是我在某个文档上看到的一道微软笔试题。

“j”的值为 8

思路:将“9999”转换二进制,看有多少个“1”。若还是理解不了,请手动用笔算(在二进制情况下进行)。
posted on 2011-07-07 23:15  子坞  阅读(305)  评论(0编辑  收藏  举报