import java.util.ArrayList;
import java.util.Scanner;
/**
* @author yzc
* @version 1.0
* @motto strive
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
int[] num = new int[T];
for (int i = 0; i < T; i++) {
num[i] = scanner.nextInt();
}
for (int a:num) {
if(a<=300){
ArrayList<Integer> list = new ArrayList<>();
int s,c,v,o;
s = a /100;
c = (a/10)%10;
v = a%10;
while (v>=2){
o = v %2;
v = v / 2;
list.add(o);
}
if (v == 1) {
list.add(1);
}else if(v == 0) {
list.add(0);
}
while (c>=2){
o = c %2;
c = c / 2;
list.add(o);
}
if (c == 1) {
list.add(1);
}else if(c == 0 && a>=10) {
list.add(0);
}
while (s>=2){
o = s %2;
s = s / 2;
list.add(o);
}
if (s == 1) {
list.add(1);
}else if(s == 0 && a>=100) {
list.add(0);
}
wa: for (int i = 0; i < list.size(); i++) {
if(list.get(i) == 0){
list.remove(i);
i--;
}else if(list.get(i) ==1){
break wa;
}
}
if(list.size()>=2){
for (int i = 0; i < list.size()-1; i++) {
if(list.get(i).equals(list.get(i+1))){
list.remove(i+1);
i--;
}
}
}
if(list.size()>1){
if(list.get(list.size()-2).equals(list.get(list.size()-1))){
list.remove(list.size()-1);
}
}
for (Integer integer:list) {
System.out.print(integer);
}
// if( a ==num[num.length-1]){
//
// }else {
// System.out.print("\n");
// }
System.out.print("\n");
}else if(a>300 && a <=3000){
ArrayList<Integer> list1 = new ArrayList<>();
int s,c,v,z,o;
z = a/1000;
s = (a/100)%10;
c = (a/10)%10;
v = a%10;
while (v>=2){
o = v %2;
v = v / 2;
list1.add(o);
}
if (v == 1) {
list1.add(1);
}else if(v == 0) {
list1.add(0);
}
while (c>=2){
o = c %2;
c = c / 2;
list1.add(o);
}
if (c == 1) {
list1.add(1);
}else if(c == 0 && a>=10) {
list1.add(0);
}
while (s>=2){
o = s %2;
s = s / 2;
list1.add(o);
}
if (s == 1) {
list1.add(1);
}else if(s == 0 && a>=100) {
list1.add(0);
}
while (z>=2){
o = z %2;
z = z / 2;
list1.add(o);
}
if (z == 1) {
list1.add(1);
}else if(z == 0 && a>=1000) {
list1.add(0);
}
wx: for (int i = 0; i < list1.size(); i++) {
if(list1.get(i) == 0){
list1.remove(i);
i--;
}else if(list1.get(i) ==1){
break wx;
}
}
if(list1.size()>=2){
for (int i = 0; i < list1.size()-1; i++) {
if(list1.get(i).equals(list1.get(i+1))){
list1.remove(i+1);
i--;
}
}
}
if(list1.size()>1){
if(list1.get(list1.size()-2).equals(list1.get(list1.size()-1))){
list1.remove(list1.size()-1);
}
}
for (Integer integer:list1) {
System.out.print(integer);
}
// if( a ==num[num.length-1]){
//
// }else {
// System.out.print("\n");
// }
System.out.print("\n");
}else if(a>3000 && a<=30000){
ArrayList<Integer> list2 = new ArrayList<>();
int s,c,v,z,x,o;
x = a /10000;
z = (a/1000)%10;
s = (a/100)%10;
c = (a/10)%10;
v = a%10;
while (v>=2){
o = v %2;
v = v / 2;
list2.add(o);
}
if (v == 1) {
list2.add(1);
}else if(v == 0) {
list2.add(0);
}
while (c>=2){
o = c %2;
c = c / 2;
list2.add(o);
}
if (c == 1) {
list2.add(1);
}else if(c == 0 && a>=10) {
list2.add(0);
}
while (s>=2){
o = s %2;
s = s / 2;
list2.add(o);
}
if (s == 1) {
list2.add(1);
}else if(s == 0 && a>=100) {
list2.add(0);
}
while (z>=2){
o = z %2;
z = z / 2;
list2.add(o);
}
if (z == 1) {
list2.add(1);
}else if(z == 0 && a>=1000) {
list2.add(0);
}
while (x>=2){
o = x %2;
x = x / 2;
list2.add(o);
}
if (x == 1) {
list2.add(1);
}else if(z == 0 && a>=10000) {
list2.add(0);
}
wc: for (int i = 0; i < list2.size(); i++) {
if(list2.get(i) == 0){
list2.remove(i);
i--;
}else if(list2.get(i) ==1){
break wc;
}
}
if(list2.size()>=2){
for (int i = 0; i < list2.size()-1; i++) {
if(list2.get(i).equals(list2.get(i+1)) ){
list2.remove(i+1);
i--;
}
}
}
if(list2.size()>1){
if(list2.get(list2.size()-2).equals(list2.get(list2.size()-1))){
list2.remove(list2.size()-1);
}
}
for (Integer integer:list2) {
System.out.print(integer);
}
// if( a ==num[num.length-1]){
//
// }else {
// System.out.print("\n");
// }
System.out.print("\n");
}
}
}
}
小易笔试 算法
最新推荐文章于 2024-04-27 11:13:02 发布