栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java简单实现农夫过河问题示例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java简单实现农夫过河问题示例

本文实例讲述了Java简单实现农夫过河问题。分享给大家供大家参考,具体如下:

一、问题描述

老伯伯要带鱼、狗、猫过河到对岸.,有一条船,只能坐一个人,老伯每次只能带一样动物过河,当老伯不在的时侯狗会咬猫,猫会吃鱼.,请问怎么顺序过河呢?

二、实现代码

package demo;
import java.util.ArrayList;
import java.util.List;
public class CrossRiver {
    List listThis = new ArrayList();
    List listThat = new ArrayList();
    
    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 + "b" + "彼岸" + listThat);
     System.out.println();
     listThat.add(str);
     thatToThis();
 }else{
     listThis.add(str);
     thisTothat();
 }
    }
    public void thatToThis(){
 if(listThis.isEmpty()){
     System.out.println("此岸" + listThis + "b" + "彼岸" + listThat);
     return;
 }
 if(isSafe(listThat)){
     System.out.println("农夫从彼岸到此岸");
     System.out.println("此岸" + listThis + "b" + "彼岸" + 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 + "b" + "彼岸" + 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();
 new CrossRiver().thisTothat();
    }
}

运行结果:

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/142752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号