#include <stdio.h> #include<malloc.h> /* 一种是 1 的数量是偶数的,牛牛称之为 1 数, 一种是 0 的数量是偶数的,牛牛称之为 0 数, 如果一个数同时是 1 数和 0 数,那称之为 10 数。---->1和0的数量都是偶数 即输出 0 或 1 或 10,如果既不是 0 类也不是 1 类则输出 100 */ //二进制转换函数 // int dectobin(int n) { // int sum = 0; // int y, x = 1; // y表示余数,x为叠加的系数 // while (n != 0) { // y = n % 2; // sum += x * y; // x *= 10; // n /= 2; // } // return sum; // } void judge(int s) { int flag = 0, flag1 = 0; //flag记录0个数,flag1记录1 while (s != 0) { if (s % 2 == 0) flag++; else flag1++; s /= 2; } if (flag % 2 == 0 && flag1 % 2 == 0) printf("10 "); else if (flag % 2 != 0 && flag1 % 2 != 0) printf("100 "); else if (flag % 2 == 0 && flag1 % 2 != 0) printf("0 "); else printf("1 "); } int main() { int n, i; scanf("%d", &n); int* arr = (int*)malloc(n * sizeof(int)); int* a = (int*)malloc(100 * sizeof(int)); for (i = 0; i < n; i++) scanf("%d", &arr[i]); for (i = 0; i < n; i++) judge(arr[i]); }