题解 | #位操作练习#
位操作练习
https://www.nowcoder.com/practice/7bdc346ca39841f6a05f73d98477621d
#include<bits/stdc++.h>
#include <bitset>
using namespace std;
bitset<16> leftCycle(bitset<16> &a) {
if(a[15] == 1) {
a = a << 1;
a[0] = 1;
}
else {
a = a << 1;
}
return a;
}
int main() {
int a;
int b;
while (cin >> a >> b) {
std::bitset<16> ba(a);
std::bitset<16> bb(b);
for (int i = 0; i < 16; i++) {
if (leftCycle(ba) == bb) {
cout << "YES" << endl;
return 0;
}
}
cout << "NO" << endl;
}
return 0;
}
