题解 | #牛牛的10类人#

牛牛的10类人

https://www.nowcoder.com/practice/232b7fc32fac4636819e31a7d7c960a3

描述

世界上有10类人,1类是懂二进制的,另一类的不懂二进制的。牛牛是第10种人,因此他是懂二进制的。
牛牛把二进制数分成两种,一种是 1 的数量是偶数的,牛牛称之为 1 数,一种是 0 的数量是偶数的,牛牛称之为 0 数,如果一个数同时是 1 数和 0 数,那称之为 10 数。

输入描述:

第一行输入一个正整数 n 表示数的个数
第二行输入 n 个正整数,表示每个输入的数字    

输出描述:

输出一行,对每个数字进行分类,即输出 0 或 1 或 10,如果既不是 0 类也不是 1 类则输出 100

示例1

输入:
2
1 10
复制
输出:
0 10
题解:
#include<stdio.h>
#define N 2
int fun(int a)//十进制转二进制
{
    int i = 1, j = 0;
    int s=0;
    while (a!=0){
        j = a % N;
        a = a / N;
        s = s + j * i;
        i *= 10;
    }
    return s;
}
int main()
{
    int n;
    scanf("%d",&n);
    int a[10];
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        a[i]=fun(a[i]);
    }
    
    int i=0;
    for(i=0;i<n;i++){
    int c=0,o=0,s;
    while(a[i]!=0)
    {
        s=a[i]%10;
        if(s==1) c++;
        else o++;
        a[i]/=10;
    }
    c%=2;o%=2;
    int r=0;
    
        if(c==0&&o!=0) r=1;
        else if(o==0&&c!=0) r=0;
        else if(o==0&&c==0) r=10;
        else r=100;
        printf("%d ",r);
    }
    
}

全部评论

相关推荐

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