题解 | #位操作练习#
位操作练习
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; }