题解 | #位操作练习#

位操作练习

https://www.nowcoder.com/practice/7bdc346ca39841f6a05f73d98477621d

#include <stdio.h>
#include <stdbool.h>

//十进制转化为二进制,并用数组输出
void binary(int n, char x[]){
    int i = 0;
    int temp;
    while(n != 0){
        temp = n / 2;
        x[i] = (n - temp*2);
        i++;
        n /= 2;
    }
}

//数组左移一位
void turnLeft(char x[]){
    char temp = x[0];
    for (int i = 0; i < 15; ++i) {
        x[i] = x[i+1];
    }
    x[15] = temp;
}

//判断两数组是否不相等,不相等返回true,相等返回false
bool judge(char x1[], char x2[]){
    for (int i = 0; i < 15; ++i) {
        if (x1[i] != x2[i]){
            return true;
        }
    }
    return false;
}

int main(){
    int a, b;
    while(scanf("%d%d", &a, &b) != EOF){
        char x1[16] = {0};
        char x2[16] = {0};
        binary(a, x1);
        binary(b, x2);

        int i = 0;
        while (judge(x1, x2)){
            turnLeft(x1);
            i++;
            if (i == 16){
                printf("NO\n");
                return 0;
            }
        }
        printf("YES\n");
    }
    return 0;
}

全部评论
666
点赞 回复 分享
发布于 11-14 21:17 江苏

相关推荐

10-17 09:06
门头沟学院 Java
8527睿:有些地方感觉不太契合实际啊。简单看看第二个项目那里。 比如canal流式读取数据库日志进行缓存同步那里。可不可以加个消息中间件来确保SQL语句的削峰填谷。一般都是canal+消息中间件 双层鉴权登录那里,描述有点模糊,登录是鉴权的前提唉,后面功能都在说是登录,鉴权没有啊
点赞 评论 收藏
分享
做个有文化的流氓:幸遇良师,幸遇好的hr
找工作中的小确幸
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

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