package com.test;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName
* @Description
* @Author qiangsw
* @date 2021/5/9 17:26
* @Version 1.0
* TODO 7只老鼠 试验100瓶水,找出那瓶水有毒
*/
public class Test3 {
/*老鼠*/
static int[] mouse = {7, 6, 5, 4, 3, 2, 1};
/*瓶子*/
static String[] bottle = new String[100];
/*和过水的老鼠组合*/
static List<String> pac = new ArrayList<>();
static String[] all0 = {"0", "0", "0", "0", "0", "0", "0"};
/**
* 瓶子编码
*/
public void serialNum() {
for (int i = 0; i < Test3.bottle.length; i++) {
String binaryString = Integer.toBinaryString(i + 1);
//补位
if (binaryString.length() < 7) {
int length = 7 - binaryString.length();
String fill = "";
for (int j = 0; j < length; j++) {
fill = fill + "0";
}
binaryString = fill + binaryString;
}
Test3.bottle[i] = binaryString;
}
}
/**
* 喝水
*/
public void drink() {
if (null == Test3.bottle || 0 == Test3.bottle.length) {
return;
}
for (int i = 0; i < bottle.length; i++) {
String elem = bottle[i];
String drinkMouse = "";
for (int j = 0; j < elem.length(); j++) {
String str = elem.substring(j, j + 1);
if (str.equals("1")) {
drinkMouse = drinkMouse + String.valueOf(mouse[j]);
}
}
if (!"".equals(drinkMouse)) {
pac.add(drinkMouse);
}
}
}
public static void main(String[] args) throws Exception {
Test3 test3 = new Test3();
test3.serialNum();
test3.drink();
//死亡老鼠组合
String s = pac.get(10);
System.out.println(s);
// 将组合转为二进制
for (int i = 0; i < s.length(); i++) {
int num = Integer.valueOf(s.substring(i, i + 1));
all0[all0.length-num] = "1";
}
String str = "";
for (int i = 0; i < all0.length; i++) {
str = str + all0[i];
}
System.out.println(str);
//二进制转十进制
int c = Integer.parseInt(str,2);
System.out.println(c);
}
}