首页 > 编程语言 >【每日例题】蓝桥杯 c++ 最小的或运算

【每日例题】蓝桥杯 c++ 最小的或运算

时间:2023-11-04 12:55:17浏览次数:29  
标签:101 运算 二进制 最小 long 蓝桥 c++ 此时 例题

最小的或运算

题目

问题描述
给定整数a,b,求最小的整数工,满足a|a = ba,其中|表示或运算。
输入格式
第—行包含2个正整数a,b.
输出格式
输出共1行,包含1个整数,表示最终答案。
样例输入
样例输出
评测数据规模
对于所有测评数据,0<a,b <264.

最小的或运算

思路分析

1.要求最小的x满足a |x = b|x,根据|运算规则:只要有1就是1,均为0才是0
2.那么如果我们想让条件成立,只要把a,b中二进制位中的不同的数字变成1就可以了
例如:  

  a : 4 -> 100 

  b : 5 -> 101  

  此时a,b最后一位二进制不同,那么我们把最后一位变成1,也就是a | 1,此时a变成了101 

  同样对b |1,此时b还101

  此时a | 1 = b | 1,所以最小的x为1 

 

例如:

  a: 110101
  b: 101101 
  此时a,b中不同的位置为:2,3 
  根据策略,如果将二三位置为1->011000 
  如果x是这个,那么a|x = 111101

  同样的,对于b: b|x = 111101 
  此时alx = b|x,所以x的二进制序列为11000 
  

  所以我们得到了一个结论,将ab中相同位置置为0,不同位置置为1,所得到的二进制序列对应的值就是x的最小值 ,而这个操作就是^。

代码

#include <iostream>
using namespace std;
int main()
{
  long long a,b;
  cin>>a>>b;
  long long x;
  x=a^b;
  cout<<x<<endl;
  return 0;
}

  

标签:101,运算,二进制,最小,long,蓝桥,c++,此时,例题
From: https://www.cnblogs.com/hcrzhi/p/17798669.html

相关文章

  • 【每日例题】蓝桥杯 c++ 奖学金
    奖学金题目蓝桥杯奖学金题目分析由题目可知,该题涉及到五个属性:学号,语文分数,数学分数,英语分数,总分;由于我们需要通过输入语文、数学、英语分数,经过操作后,输出学号与总分,所以我们可以通过结构体进行存储。       下面是有关结构体的信息:结构体信息   2.......
  • C/C++ 使用 MySQL API 操作 数据库
    C/C++对MySQLAPI的使用 MySQL数据库是一个C/S结构(客服端/服务器),当我们安装好MYSQL服务器之后可以通过客户端访问服务器端的数据;这里以C语言提供的API举例实现对数据库的操作;再程序中连接数据库服务器,主要有以下步骤:初始化连接环境;连接mysql的服务器,需......
  • UE4中的C++编程简介
    对官方文档的学习链接利用UE创建一个C++基类在编辑器中可以选择父类,根据这个父类我们可以创建一个基类用于后续的蓝图类制作。以Actor父类为例创建基类,其头文件会包含一个构造函数,一个Tick函数的重载和一个BeginPlay函数的重载。BeginPlay函数告诉Actor以可运行状态进入了游戏......
  • C++参数解析参数
    《C/C++参数解析》1.getopt库的使用  getopt用于解析程序命令行输入的参数,可解析短参数和长参数;解析短参数使用getopt()函数,解析长参数可使用getopt_long();1.1getopt()解析短参数  getopt()函数用来解析短参数,例如-a或者-b100这样的参数,不能解析长参数,如--ip198.11.2......
  • c/c++ 指针的江湖传说
    万物皆内存,内存有两个东西:地址、值。普通变量、引用变量、指针变量,二级指针变量,数组,指针数组...等等,皆内存。【指针】intx=10;//变量int*pX=&x;//指针变量int**ppX=&pX;//二级指针变量//地址,值std::cout<<&x<<","<<x<<std::endl;s......
  • c++入门基础
    c++打算法竞赛的优点是,输入输出比较方便,里面封装的stl库可以直接用,例如sort排序,直接一行代码就行了,时间复杂度也很友好。整数:输入:输出:小数:输入:输出:数组:输入:输出:字符串:输入:输出:结构体:输入输出:模板:点击查看代码#include<bits/stdc++.h>usingnames......
  • 浅析C++中浮点数在内存中的存储方式
    1.任何数据在内存中都是以二进制的形式进行存储。例如,short型数据1156,由于在32位机和64位机都占2B一共16位其二进制形式为:0000010010000100。在IntelCPU架构的系统中(目前用的最多的硬件架构系统),存放方式为10000100(低地址单元)00000100(高地址单元),因为IntelCPU的......
  • 梳理C++各种数据类型所占字节数和表示范围
    Outline1.数据类型所在字节数与程序运行平台有关2.列举各种数据类型所占字节数1.数据类型所在字节数与程序运行平台有关不同的平台上对不同数据类型分配的字节数是不同的。平台环境的理解:硬件架构操作系统(OS)编译器(Compiler)程序的运行环境取决于上述配件。原因:64位机......
  • 使用C++实现Range序列生成器
    在C++编程中,经常需要迭代一系列数字或其他可迭代对象。通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读。如果你使用过Python语言那么一定对Range语句非常的数据,我们可以使用C++来实现一个简单的Range封装,如下代码定义了一个名为Range的命名空间......
  • 使用C++实现Range序列生成器
    在C++编程中,经常需要迭代一系列数字或其他可迭代对象。通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读。如果你使用过Python语言那么一定对Range语句非常的数据,我们可以使用C++来实现一个简单的Range封装,如下代码定义了一个名为Range的命名空间,......