一道微软面试题的运算过程解析
这是一道微软的面试题;
int func(x)
{
int countx =0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
假定x = 9999。 答案:8
思路:将x转化为2进制,看含有的1的个数。
并不是太理解;下面来做一个MFC程序,把运算步骤中间结果输出了看一下;
VC新建一个单文档工程;
函数体加入输出语句,加到视类CPP文件的尾部;
int func(int x, CDC* pDC)
{int rows = 0; //输出行CString str1;int countx =0;while(x){countx ++;x = x&(x-1);str1.Format("%d",x);pDC->TextOut(20, 20+rows*30, str1);str1.Format("%d",x-1);pDC->TextOut(120, 20+rows*30, str1);str1.Format("%d",x&(x-1));pDC->TextOut(220, 20+rows*30, str1);rows = rows + 1;}return countx;
}
函数声明加到视类CPP文件的头部;
int func(int, CDC*);
在OnDraw()函数中调用;
void CMstestView::OnDraw(CDC* pDC)
{CMstestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereint cnt = func(9999, pDC);
}
运行一下;
看一下一共输出了8行,运算8次之后x为0,退出while,返回运算次数;结果为8;
一道微软面试题的运算过程解析相关推荐
- 数位DP--由一道微软笔试题引起
前天晚上,一位研三的学长突然跑到我们宿舍,问我们一道微软笔试题.给你一个整数n,求出1到n这个区间范围内包含数字0的个数,例如当n=10的时候就只有10包含0,输出1,n=90就输出9.唯一的要求是此 ...
- 答与微博前端教主在吃饭时讨论到的一道微软面试题
加引号是因为我不知道是否真是微软面试题.题目是这样的: 有一车在某无限长公路上行驶,其起始位置和单位时间内速度均为有限大整数(正负不确定), 现有一仪器,在每一时间单位内可以探测1次车是否在指定位置, ...
- 一道微软面试题的Java解法
问题:你有4瓶药.每粒药丸的重量是固定的,不过其中有一瓶药受到了污染,药丸的重量发生了变化,每个药丸增加了一点重量.你怎样一下子测出哪瓶药是遭到污染的呢? Java代码: 代码 package cn. ...
- 解读一道微软经典面试题:海盗分宝石
这是微软的一道经典的试题,大约是2008年左右的时候出的.这个题目虽然已经过了十多年了,但是仍然是一道非常经典的试题,值时不时拿出来看一看. 问题描述 五个海盗抢到了100颗宝石.他们决定按以下的规则 ...
- 历史上最简单的一道Java面试题,但无人能通过
作者:方志宏 来源:zhuanlan.zhihu.com/p/57859872 这可能是历史上最简单的一道java面试题了. 题目很简单,完成代码,判断一个整数是否是奇数: public boolea ...
- 微软面试题:站在地球上的某一点,向南走一公里,然后向东走一公里,最后向北走一公里,回到了原点。地球上有多少个满足这样条件的点?
微软面试题:站在地球上的某一点,向南走一公里,然后向东走一公里,最后向北走一公里,回到了原点.地球上有多少个满足这样条件的点? 分析:这是一道智力题.从逻辑上来讲,题目从好像缺少了一次向西的过程,才可 ...
- 2017安徽省计算机一级试题,2017年计算机一级练习试题「附答案解析」
<2017年计算机一级练习试题「附答案解析」>由会员分享,可在线阅读,更多相关<2017年计算机一级练习试题「附答案解析」(10页珍藏版)>请在装配图网上搜索. 1.2017年 ...
- 2021-02-252021 互联网大厂年度总结1000+道高频面试题(附答案解析)冲刺2021
2021 互联网大厂年度总结1000+道高频面试题(附答案解析)冲刺2021 1.String类能不能被继承?为什么? 不能 因为string类是被final修饰的类,final修饰过的类不能被继承. ...
- 输入url到页面加载都发生了什么事情?(一道软件测试面试题)
文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试: ...
最新文章
- 【阿里云域名】我都有服务器了,为什么还要购买域名?
- python selenium webdriver_Python:selenium.webdriver问题(服务器上没有X)
- server长时间运行query,Ajax刷新被block
- [snmp++]读取cisco路由交换机信息[一] - 环境搭建
- javafx之TableView的TaleCell
- 百度前端学院参考答案:第二十五天到第二十七天 倒数开始 滴答滴 滴答滴(2)...
- linux yast 软件管理_系统管理工具 Spacewalk
- 微信网页开发 thinkphp5.0的try-catch和重定向
- Netsuite Foreign Currency Revaluation 外币评估
- Ubuntu下安装Fcitx和美化Fcitx,解决方框错误.
- STM8S——watchdog(IWDG)
- linux文本编辑器字体大小,怎样将Linux中gcc文本编辑器的字体放大
- 数据库 --- 约束
- VTK Camera
- Simulink步长选择
- 《因子投资 - 方法与实践》新书上市
- Esri中国虾神卢拜年贴
- 认识中药(4)--陈皮
- Elixir元编程-第三章 编译时代码生成技术进阶
- 乐高机器人纲要_人工智能与机器人课程纲要
热门文章
- 单链表按顺序插入节点
- jQuery 样式操作||操作 css 方法/设置类样式方法
- Backbone集合
- 标签页使用及bug解决
- 思维导图 - 测试技术扩展:Postman接口测试、Sonar白盒测试、Sonic移动测试、Python操作FTP服务器
- Python+selenium 自动化-切换窗口页签、切换iframe框架。确定页面是否包含iframe方法。
- PyQt5 图形界面-实现按钮监听事件
- VS2013(Visual Studio 2013)官方中文旗舰版安装激活方法
- 电磁场与电磁波第四章 时变电磁场
- 1.1 基本图像导入、处理和导出