分析:过程是先记录初始状态酒的容量,然后利用递归实现倒酒的过程,最后只要有一个容器中的容量满足则退出。
倒酒的规则是:1----->2,2------->3,3------->1;
import java.util.*;
public class 泊松分酒 {
static int x,y,z,a,b,c,max;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader=new Scanner(System.in);
int max;
String s=reader.nextLine();
String[] ss=s.split(",");
x=Integer.valueOf(ss[0]);
y=Integer.valueOf(ss[1]);
z=Integer.valueOf(ss[2]);
a=Integer.valueOf(ss[3]);
b=Integer.valueOf(ss[4]);
c=Integer.valueOf(ss[5]);
max=Integer.valueOf(ss[6]);
//System.out.println(max);
f(a,b,c,max);
}
public static void f(int a,int b,int c,int max){
System.out.println(a+","+b+","+c);
if(a==max||b==max||c==max)
{ System.out.println(max);
return;
}
if(b==0){//b为空
if(a>y)
f(a-y,y,c,max);
else
f(0,a,c,max);
}
else
if(c==0||b==y){//b为满或者c为空
if(b>z-c)
f(a,b-z+c,z,max);
else
f(a,0,c+b,max);
}
else
if(c==z){//c为满
if(a+c>x)
f(x,b,c-x+a,max);
else
f(a+c,b,0,max);
}
else
if(c==0||b==y){
if(b>z-c)
f(a,b-z+c,z,max);
else
f(a,0,c+b,max);
}
}
}