淘宝春季实习生笔试题和面试题答案(2)

招聘笔试题2018-11-22三水老师

  11. 假定x=9999, 下面函数的返回值是 8

  统计1 的个数

  -------------------------------------

  int func(int x)

  {

  int countx = 0;

  while(x)

  {

  countx++;

  x = x&(x-1);

  }

  return countx;

  }

  假定x = 9999

  10011100001111

  答案: 8

  思路: 将 x 转化为 2 进制,看含有的 1 的个数。

  注: 每执行一次 x = x&(x-1) ,会将 x 用二进制表示时最右边的一个 1 变为 0 ,因为 x-1 将会将该位 (x 用二进制表示时最右边的一个 1) 变为 0 。

  12. 有以下定义和语句

  Int a[3][2]={1,2,3,4,5,6},*p[3]

相关推荐

猜你喜欢

大家正在看

换一换