最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java簡單實(shí)現(xiàn)農(nóng)夫過河問題示例

 更新時(shí)間:2017年12月07日 11:04:30   作者:csu_yumi  
這篇文章主要介紹了Java簡單實(shí)現(xiàn)農(nóng)夫過河問題,簡單描述了農(nóng)夫過河問題的概念、原理并結(jié)合簡單實(shí)例形式分析了java解決農(nóng)夫過河問題的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java簡單實(shí)現(xiàn)農(nóng)夫過河問題。分享給大家供大家參考,具體如下:

一、問題描述

老伯伯要帶魚、狗、貓過河到對岸.,有一條船,只能坐一個(gè)人,老伯每次只能帶一樣動(dòng)物過河,當(dāng)老伯不在的時(shí)侯狗會(huì)咬貓,貓會(huì)吃魚.,請問怎么順序過河呢?

二、實(shí)現(xiàn)代碼

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("農(nóng)夫帶著 " + 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("農(nóng)夫從彼岸到此岸");
            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("農(nóng)夫帶著 " + 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("腳本之家測試結(jié)果:");
        System.out.println();
        new CrossRiver().thisTothat();
    }
}

運(yùn)行結(jié)果:

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 一文詳解Redisson分布式鎖底層實(shí)現(xiàn)原理

    一文詳解Redisson分布式鎖底層實(shí)現(xiàn)原理

    這篇文章主要詳細(xì)介紹了Redisson分布式鎖底層實(shí)現(xiàn)原理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java接入微信支付超級(jí)詳細(xì)保姆級(jí)教程

    Java接入微信支付超級(jí)詳細(xì)保姆級(jí)教程

    這篇文章主要給大家介紹了關(guān)于Java接入微信支付的相關(guān)資料,包括l 準(zhǔn)備開發(fā)所需的賬號(hào)和配置信息、準(zhǔn)備環(huán)境、設(shè)置開發(fā)參數(shù)以及實(shí)現(xiàn)支付接口,回調(diào)地址的設(shè)置和異步回調(diào)通知的處理也是文章的重點(diǎn)內(nèi)容,需要的朋友可以參考下
    2024-12-12
  • Java向Runnable線程傳遞參數(shù)方法實(shí)例解析

    Java向Runnable線程傳遞參數(shù)方法實(shí)例解析

    這篇文章主要介紹了Java向Runnable線程傳遞參數(shù)方法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java警告:原發(fā)性版11需要目標(biāo)發(fā)行版11的解決方法和步驟

    Java警告:原發(fā)性版11需要目標(biāo)發(fā)行版11的解決方法和步驟

    這篇文章主要介紹了Java警告:原發(fā)性版11需要目標(biāo)發(fā)行版11的解決方法和步驟,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2025-04-04
  • 使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼

    使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼

    這篇文章主要介紹了使用SpringBoot+AOP實(shí)現(xiàn)可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • java swing 實(shí)現(xiàn)加載自定義的字體

    java swing 實(shí)現(xiàn)加載自定義的字體

    這篇文章主要介紹了java swing 實(shí)現(xiàn)加載自定義的字體,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單的創(chuàng)建示例

    java實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單的創(chuàng)建示例

    這篇文章主要介紹了java實(shí)現(xiàn)微信公眾平臺(tái)自定義菜單的創(chuàng)建示例,需要的朋友可以參考下
    2014-04-04
  • SpringBoot自定義注解開發(fā)指南

    SpringBoot自定義注解開發(fā)指南

    在開發(fā)SpringBoot程序的過程中,有可能與其他業(yè)務(wù)系統(tǒng)進(jìn)行對接開發(fā),獲取封裝公共的API接口等等,下面這篇文章主要給大家介紹了關(guān)于SpringBoot自定義注解的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • java反射簡單實(shí)例

    java反射簡單實(shí)例

    這篇文章主要介紹了java反射機(jī)制,以一個(gè)簡單實(shí)例形式分析了Java反射的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-02-02
  • 詳解Intellij IDEA中.properties文件中文顯示亂碼問題的解決

    詳解Intellij IDEA中.properties文件中文顯示亂碼問題的解決

    這篇文章主要介紹了詳解Intellij IDEA中.properties文件中文顯示亂碼問題的解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評論

石台县| 聂拉木县| 韩城市| 永修县| 长岛县| 无极县| 晋中市| 荔浦县| 馆陶县| 阳原县| 宁国市| 准格尔旗| 岳阳县| 瓮安县| 成安县| 容城县| 修水县| 溧阳市| 洞头县| 康定县| 秦安县| 民丰县| 陵水| 兴隆县| 波密县| 长武县| 嵩明县| 水富县| 平果县| 钟山县| 卢湾区| 徐水县| 二手房| 华池县| 宾川县| 资源县| 大洼县| 张家川| 邛崃市| 安义县| 新竹市|