题解 | #位操作练习#

位操作练习

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

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务