题目大意:
给X 和Y , X>Y。求在5步内,X xor 到Y的方案。
1.xor的意思是异或。
2.异或运算可以用^实现。
3.异或运算是可逆的。
A^B=C. C^A=B ,C^B=A;
了解这些后,解题思路就很清晰了。
1.求X^Y=Z, 如果Z<X,则只需要1步即可,因为可逆,X^Z=Y;
2.如果Z>X,则先让X^Y,得到Z,则X变成Z,再 Z^X=Y;
AC代码如下:
(记得开long long)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=60;
const int M=5e5+10;
int a[N],b[N];
int n;
int main()
{
int a=7;
int b=10;
int c;
printf("a==%d b===%d \n",a,b);
c=a^b;
printf("A^B==C=%d\n",c);
printf("C^A==B=%d\n",c^a);
printf("C^B==A==%d\n",c^b);
return 0;
}