题解 | #位操作练习#

位操作练习

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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务