result[a]-=(size[b]-result[b]);
//b酒杯装满
result[b]=size[b];
}
return true;
}
//将当前状态添加到记录中
private void addHistory(){
String his=result[0]+","+result[1]+","+result[2];
history.add(his);
}
//当前状态是否存在于历史记录中
private boolean isInHistory(){
//待优化,可以用位运算
String his=result[0]+","+result[1]+","+result[2];
return history.contains(his);
}
//添加过程
private void addCourse(){
for(int i=0;i
}
}
//移除过程
private void removeCourse(){
int length=course.size();
for(int i=length-1;i>length-4;i--){
course.remove(i);
}
}
//当前结果是否是最终结果了
private boolean isLast(){
for(int i=0;i
}
return false;
}
//输出最终结果
private void outputCourse(){
for(int i=0;i
if(i%3==2){
System.out.println(course.get(i));
}else{
System.out.print(course.get(i)+",");
}
}
System.out.println("========================");
}
}
}输出结果:
[java]
12,0,0
4,8,0
0,8,4
8,0,4
8,4,0
3,4,5
3,8,1
11,0,1
11,1,0
6,1,5
========================
12,0,0
4,8,0
4,3,5
9,3,0
9,0,3
1,8,3
1,6,5
========================
12,0,0
4,8,0
0,8,4
8,0,4
8,4,0
3,4,5
3,8,1
11,0,1
11,1,0
6,1,5
========================
12,0,0
4,8,0
4,3,5
9,3,0
9,0,3
1,8,3
1,6,5
========================