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

如何做网站建设方案网站备案查询 美橙

如何做网站建设方案,网站备案查询 美橙,wordpress文章添加字段,免费自己做网站软件题目1#xff1a;下一个数 给定一个正整数#xff0c;找出与其二进制表达式中1的个数相同且大小最接近的那两个数#xff08;一个略大#xff0c;一个略小#xff09;。 示例#xff1a; 输入#xff1a;num 2#xff08;或者0b10#xff09; 输出#xff1a;[4,…题目1下一个数 给定一个正整数找出与其二进制表达式中1的个数相同且大小最接近的那两个数一个略大一个略小。 示例 输入num 2或者0b10  输出[4, 1] 或者[0b100, 0b1]  输入num 1  输出[2, -1] 解题思路 1.先用bitset将num的32位二进制表示出来存放到数组中方便可以遍历 2.较大值从左往右找到第一个01将其转换成10再将右侧剩余的1全都移动到最低位 eg.0101110   -1000111 3.较小值从左往右找到第一个10将其转换成01 再将右侧剩余的1全都移动到最高位 eg.1001110   -0111100 4.bitset数组的下标是从低位开始的也就是从右往左进行遍历 源代码如下 class Solution { public:vectorint findClosedNumbers(int num) {bitset32 smaller(num);//将二进制表示出来bitset32 bigger(num);//找较小值int a-1;//a初始化为-1for(int i1;i32;i){//找到10变成01if(smaller[i]1 smaller[i-1]0){smaller.flip(i);//flip(i)将第i位上的数字进行翻转 0转11转0smaller.flip(i-1);//将右侧剩余的1全移动到高位//相当于left和right的位互换for(int left0,righti-2;leftright;){//从低位找到第一个不为0的while(leftright smaller[left]0) left;//从高位找到第一个不为1的while(leftright smaller[right]1) right--;//位翻转smaller.flip(left);smaller.flip(right);}//smaller.to_ulong() 将数组smaller转成unsigned long类型的值//再强转成int类型a(int)smaller.to_ulong();break;}}//找较大值int b-1;//在找较大值时bigger要保证正数最高符号位保证为0最大正数为21474836472进制31个1i只能到第30位如果写 i32 会出现上溢所以这里与较小值不同的点在于要将i32改为i31,防止溢出for(int i1;i31;i){//找到01变成10if(bigger[i]0 bigger[i-1]1){bigger.flip(i);bigger.flip(i-1);//将右侧剩余的1全移动到低位for(int left0,righti-2;leftright;){while(leftright bigger[left]1) left;while(leftright bigger[right]0) right--;bigger.flip(left);bigger.flip(right);}b(int)bigger.to_ulong();break;}}return {b,a};} }; 题目2整数转换 编写一个函数确定需要改变几个位才能将整数A转成整数B。 示例 输入A 29 或者0b11101, B 15或者0b01111  输出2  输入A 1B 2  输出2 解题思路 1.用bitset将整数A和B的32位 二进制表示出来存放在数组里进行遍历 2.遇到aa[i]!bb[i]说明需要转换count即可 源代码如下 class Solution { public:int convertInteger(int A, int B) {bitset32 aa(A);//A的二进制bitset32 bb(B);//B的二进制int i0;//都是32位所以只需要一个下标进行遍历int count0;//用来记录需要改变的次数while(i32){//遇到当前位不相等的就需要转换countif(aa[i]!bb[i]){count;}i;}//返回countreturn count;} }; 题目3配对交换 编写程序交换某个整数的奇数位和偶数位尽量使用较少的指令也就是说位0与位1交换位2与位3交换以此类推。 示例 输入num 2或者0b10  输出 1 (或者 0b01) 解题思路 1.用bitset将num的二进制保存到数组中便于用下标进行访问 2.从低到高两两进行交换i2 3.将最后的结果用to_ulong()函数先转成unsigned long类型再强转成int类型 源代码如下 class Solution { public:int exchangeBits(int num) {bitset32 bit(num);int i0;//从低到高进行两两交换//注意因为要访问i1所以循环结束条件为i31,防止越界while(i31){int tempbit[i];bit[i]bit[i1];bit[i1]temp;i2;//i每次跳两个位数}//bit.to_ulong() 将二进制数转成unsigned long类型的值//再强转成int类型就可以返回了return (int)bit.to_ulong();} };
http://www.hkea.cn/news/14384614/

相关文章:

  • 手机高端网站开发商场设计平面图
  • 网站样版风格排版网站制作网站建站
  • 哪个网站专门做灵异文网络营销的定义与特点
  • 天津网站建设定做内蒙古建设厅安全资料网站
  • 微网站appxz域名网站
  • 做网站销售怎么找客户免费网站后台管理系统模板下载
  • 网站界面风格房地产网站制作公司
  • 赵县网站建设货源网 wordpress 模板
  • 美食网站建设合同范例企业网站制作模板
  • 做铝材哪些网站招聘郸城建设银行网站
  • 建设网站服务器自媒体营销的方式有哪些
  • H5响应式网站数据网络规划设计师一本通
  • 手机网站关键网站开发软件
  • 企业网站优化推广安装完wordpress怎么打开
  • 化工网站建设价格营销型科技网站
  • 教育网站建设计划书name域名的网站
  • 请人做ppt的网站怎么制作自己的网址
  • 南京网站创建node 网站开发
  • 用返利网站做爆款android下载软件
  • 北京加盟网站建设电子商务网站建设 项目规划书
  • 在线网站建设者4线城市搞网站开发
  • 网络公司给别人做网站的cms是买的授权么手机网站焦点图代码
  • 爱做网站免费版东莞高埗网站建设
  • 网站 例一级a做爰片免播放器网站
  • 鄂州做网站的公司个人主页介绍文案
  • 网站建设和运维单位责任网站未备案会怎么样
  • 网站飘动国内做网站的公司有哪些
  • 网站销售系统怎么做石家庄模板建站代理
  • 梧州seo深圳网页设计公司搜行者seo
  • 网站被百度惩罚怎么办自己搭建网站怎么搭建