先看代码:

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”。若还是理解不了,请手动用笔算(在二进制情况下进行)。

相关文章:

  • 2021-11-12
猜你喜欢
  • 2021-06-20
  • 2022-02-16
相关资源
相似解决方案