/*
* a,b,c,d每次的人数
* 因为每一次都会有人倒下,所以a<=20,b<=19,c<=18,d<=17,并且后一次的人数总比前一次的少
* 又因为船长说4次他喝了一瓶所以第4次的人数一定小于4,叫船长喝了大于1/4瓶,因为如果最后一次大于4人的话
* 船长喝的就会小于1/4瓶,而前几次的人数也会大于4这样船长就会喝不到一瓶,所以d<4
* */
class Demo
{
public static void main(String[] args)
{
for(int d=2;d<4;d++){//第4瓶酒,坐着的已经所剩无几,海盗船长也在其中所以2<=d<4
for(int c=d+1;c<=18;c++){//掐你因此的人数总比后边的多
for(int b=c+1;b<=19;b++){
for(int a=b+1;a<=20;a++){
if((1.0/a+1.0/b+1.0/c+1.0/d)==1){
System.out.println(a+","+b+","+c+","+d);
break;
}
}
}
}
}
}
}
结果:
18,9,3,2
15,10,3,2
20,5,4,2
12,6,4,2 |