题目: 有三个人和三只鬼在一条河的一岸,需要过河,河中有一条小船,最多可以同时容纳两位,过河的过程中,河岸的任意一边如果,鬼的数目多于人的数目的时候,鬼就会乘机吃掉人,请用程序找出能使人和鬼都能安全过河的办法。 import java.util.ArrayList; import java.util.List; public class Test { /** * 左岸人鬼统计 left.get(0)表示人的数量 left.get(1)表示鬼的数量 **/ private List<Integer> left = new ArrayList<Integer>(); /** * 右岸人鬼统计 left.get(0)表示人的数量 left.get(1)表示鬼的数量 **/ private List<Integer> right = new ArrayList<Integer>(); /** * 初始化左右两岸人鬼数量,左岸人鬼各三个,需要安全过到右岸 */ public Test() { left.add(3); left.add(3); right.add(0); right.add(0); } /** * 查找过河方法 */ public void spySendWay() { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } if (sendTwoPerson()) { // 如果左岸人鬼都成功过河,结束循环 if (left.get(0) == 0 && left.get(1) == 0) { break; } if (backOneGhost()) { backGhost(1); System.out.print("----->1鬼回来"); } else if (backTwoGhost()) { backGhost(2); System.out.print("----->2鬼回来"); } else if (backOne()) { backPerson(1); backGhost(1); System.out.print("-->1人1鬼回来"); } else if (backOnePerson()) { backPerson(1); System.ou