当前位置: 首页 > news >正文

建设部网站诚信平台北京公司公示在哪个网站

建设部网站诚信平台,北京公司公示在哪个网站,seo排名优化代理,做学校网站素材图片素材记录来自《剑指offer》上的算法题。 题目如下#xff1a; 请实现一个函数#xff0c;输入一个整数#xff0c;输出该数二进制表示中1的个数。例如把9表示成二进制是1001#xff0c;有两位是1#xff0c;因此如果输入9#xff0c;函数输出是2。 这道题目的一个基本思路是…记录来自《剑指offer》上的算法题。 题目如下 请实现一个函数输入一个整数输出该数二进制表示中1的个数。例如把9表示成二进制是1001有两位是1因此如果输入9函数输出是2。 这道题目的一个基本思路是先判断整数二进制表示中最右边一位是否为1接着将整数右移一位再进行判断这样每次右移一位直到整数为0为止。其代码实现如下 int NumbersOf1(int n){int count 0;while(n){if (n 1)count;n n 1;}return count; } 但这是一个容易引起死循环的解法当遇到负数的时候如0x80000000将其右移一位不是简单的将最左边的1移动到左边第二位变成0x40000000,而是要保持负数即移位后应该是0xC0000000最高位依然是1这样一直往右移动最后得到的会是0xFFFFFFFF从而陷入死循环。 为了避免这种情况我们可以不移动输入的数字。而是移动1每次将其左移一位这样就可以与输入的数字n的从右边开始每一位进行判断是否有1。实现代码如下 // 常规解法判断二进制数中1的个数 int NumbersOf1(int n){int count 0;unsigned int flag 1;while (flag){if (n flag)count;flag flag 1;}return count; } 这种算法的循环次数等于整数二进制的位数。 下面介绍一种更好的改进方法其循环次数等于整数中1的个数。实现如下 // 改进算法 int NumbersOf1Optimiz(int n){int count 0;while (n){count;n (n - 1) n;}return count; } 其接法思路是当一个整数减去1后会将最右边的1变为0而该位再往右的位都变为1如1100再减去1后得到的是1011原来最右边的1是第二位现在变成了1而原来是0的则变成了1此时将1011与原来的整数1100进行与操作后会得到1000也就是将原来整数中最右边的1变成了0那么一个整数的二进制中有多少个1就可以进行多少次这样的操作即整数减去1后与原整数进行与运算的操作。 更完整代码可以查看测试例子。
http://www.sadfv.cn/news/222378/

相关文章:

  • 高明网站设计报价wordpress返回前页
  • 杭州网站制作机构凡科论文送审平台
  • 做网站需要什么技术国外专门做童装的网站有哪些
  • 建网站怎么做专家网络公司排名
  • 做随车吊网站要多大北京网站制作建设公司哪家好
  • 网站的导航栏设计文本怎么注册网站卖东西
  • 建设银行北京市财满街分行网站婚嫁网站设计
  • 科技成果转化网站建设方案郑州app制作
  • 滨州北京网站建设价格昆明网站开发多少钱
  • 微信建设网站wordpress 实时预览
  • ICP备案域名网站无锡崇安网站建设
  • seo网站推广教程为什么没人做同城购物网站
  • 网站的seo如何优化自建网站教程
  • 成都住建局官网查房源网站只做优化
  • 企业网站代建设企业做网站上海
  • 咖啡网站设计建设佛山网站建设怎么选
  • 网站建设应该注意哪些广州系统开发公司
  • 网站怎么做自然优化荣耀商城手机官网
  • 海淀区网站备案去哪wordpress连接微信订阅号
  • 如何做与别人的网站一样的做的好看的旅游网站
  • 建设网站群电商平台市场调研报告
  • 台州网站开发公司产品策划书模板
  • 腾讯云网站搭建流程传播文化有限公司网站建设
  • asp 大型网站开发沈阳哪有做网站的
  • 做网站需要每年交钱吗久久建筑网登录
  • 有关学校网站建设策划书网页设计作业假面骑士
  • 社交网站开发公司自建站平台
  • 甘肃住房与城乡建设厅网站毕业设计做视频网站
  • 承德企业网站建设网站建设相关的书籍
  • 平凉哪家做企业网站织梦模板大全