没有合适的资源?快使用搜索试试~ 我知道了~
首页Java简单实现农夫过河问题示例
资源详情
资源评论
资源推荐

Java简单实现农夫过河问题示例简单实现农夫过河问题示例
主要介绍了Java简单实现农夫过河问题,简单描述了农夫过河问题的概念、原理并结合简单实例形式分析了java
解决农夫过河问题的相关操作技巧,需要的朋友可以参考下
本文实例讲述了Java简单实现农夫过河问题。分享给大家供大家参考,具体如下:
一、问题描述一、问题描述
老伯伯要带鱼、狗、猫过河到对岸.,有一条船,只能坐一个人,老伯每次只能带一样动物过河,当老伯不在的时侯狗会咬
猫,猫会吃鱼.,请问怎么顺序过河呢?
二、实现代码二、实现代码
package demo;
import java.util.ArrayList;
import java.util.List;
public class CrossRiver {
List<String> listThis = new ArrayList<String>();
List<String> listThat = new ArrayList<String>();
/*boolean thisFlag = true;
boolean thatFlag = false;
*/
public CrossRiver() {
listThis.add("dog");
listThis.add("fish");
listThis.add("cat");
// listThis.add("people");
}
public boolean isSafe(@SuppressWarnings("rawtypes") List list){
if(list.contains("fish")&&list.contains("cat")||list.contains("cat")&&list.contains("dog")){
return false;
}else{
return true;
}
}
public void thisTothat(){
String str = listThis.get(0);
listThis.remove(str);
if(this.isSafe(listThis)){
System.out.println("农夫带着 " + str + " 从此岸到彼岸");
System.out.println("此岸" + listThis + "" + "彼岸" + listThat);
System.out.println();
listThat.add(str);
thatToThis();
}else{
listThis.add(str);
thisTothat();
}
}
public void thatToThis(){
if(listThis.isEmpty()){
System.out.println("此岸" + listThis + "" + "彼岸" + listThat);
return;
}
if(isSafe(listThat)){
System.out.println("农夫从彼岸到此岸");
System.out.println("此岸" + listThis + "" + "彼岸" + listThat);
System.out.println();
thisTothat();
}else{
String str = listThat.get(0);
listThat.remove(0);
if(isSafe(listThat)){
System.out.println("农夫带着 " + str + " 从彼岸到此岸");
System.out.println("此岸" + listThis + "" + "彼岸" + listThat);
System.out.println();
listThis.add(str);
thisTothat();
}else{
listThat.add(str);
thatToThis();
}
}
}
public static void main(String[] args){
System.out.println("我们测试结果:");
System.out.println();
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0