问题:假设有100瓶水 , 其中一瓶水有毒 , 可以让老鼠喝过之后第二天死亡
那么现在你需要多少只老鼠 , 才能在第二天找出有毒的水呢 ?
思路:0-100在二进制中占7位,所以只需要7只老鼠即可
先随机产生一个0-100的整数,将这个数跟1进行位运算,再右移一位再跟1相与
public class test{
public static void main(String[] args) {
int a1,a2,a3,a4,a5,a6,a7,a8;
byte i = (byte)(Math.random()*101);
System.out.println("随机产生第"+i+"瓶水有毒");
System.out.println(Integer.toBinaryString(i));
if((i & 1)==1) {
a1=1;
System.out.println("a1老鼠被毒死");
}
if((i>>1& 1)==1) {
a2=1;
System.out.println("a2老鼠被毒死");
}
if((i>>2 & 1)==1){
a3=1;
System.out.println("a3老鼠被毒死");
}
if((i>>3 & 1)==1){
a4=1;
System.out.println("a4老鼠被毒死");
}
if((i>>4 & 1)==1) {
a5=1;
System.out.println("a5老鼠被毒死");
}
if((i>>5 & 1)==1){
a6=1;
System.out.println("a6老鼠被毒死");
}
if((i>>6 & 1)==1){
a7=1;
System.out.println("a7老鼠被毒死");
}
if((i>>7 & 1)==1){
a8=1;
System.out.println("a8老鼠被毒死");
}
}
}