微软面试题【2】
2013-11-29 10:18
155 查看
求下面函数的返回值(微软)
自己补充的完整代码:
运行结果:(思路:将x转化为2进制,看含有的1的个数)
注: 每执行一次x
= x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。
即:x = 1111, x-1 = 1110, 则 x&(x-1) = 1100.
int func(int x) { int count = 0; while(x) { count++; x = x & (x-1); } return (count); }
自己补充的完整代码:
#include<iostream>
using namespace std;
int func(int x) { int count = 0; while(x) { count++; x = x & (x-1); } return (count); }
int main()
{
int x = 0;
cout<<"Input: ";
cin>>x;
x = func(x);
cout<<"Return: "<<x<<endl;
return 0;
}
运行结果:(思路:将x转化为2进制,看含有的1的个数)
注: 每执行一次x
= x&(x-1),会将x用二进制表示时最右边的一个1变为0,因为x-1将会将该位(x用二进制表示时最右边的一个1)变为0。
即:x = 1111, x-1 = 1110, 则 x&(x-1) = 1100.
相关文章推荐
- 微软面试题汇总(2)
- 微软的面试题及答案-超变态但是很经典(ZZ)
- 微软(外包)面试题(二)
- 微软面试题<三>
- 全新整理:微软、Google等公司的面试题及解答、第161-170题
- 灯的启示:微软对唐骏的面试题
- 微软,Google面试题 (19) —— 反转单向链表
- 微软面试题:求整数随机数构成的数组中找到长度大于=3的最长的等差数列
- 微软四道经典算法面试题(附思路)
- 微软面试题
- 微软面试题之数字谜题方案
- 微软的22道数据结构算法面试题(含答案)
- 微软面试题:利用天平砝码,三次将140克的盐 分成50、90克两份?
- 经典面试题(一)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 来自苹果、谷歌、微软等知名公司六道有趣智力面试题,试试吧!
- 微软的面试题及答案
- 我在微软出的面试题-唐骏
- 微软的面试题
- 微软面试题智力题
- 微软面试题 组合排列算法