Dieser Artikel beschreibt die einfache Umsetzung des Problems von Landwirten, die den Fluss in Java überqueren. Teilen Sie es für Ihre Referenz wie folgt weiter:
1. Problembeschreibung
Der alte Mann will über den Fluss Fische, Hunde und Katzen auf die andere Seite schneiden. Es gibt ein Boot, das nur eine Person sitzen kann. Der alte Mann kann jedes Mal nur ein Tier dazu bringen, den Fluss zu überqueren. Wenn der alte Mann weg ist, beißt der Hund die Katze und die Katze frisst Fisch. Wie überquert man den Fluss nacheinander?
2. Implementieren Sie Code
Paket Demo; import Java.util.ArrayList; importieren 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 ("Hund"); listThis.add ("fisch"); listThis.add ("Katze"); // listThis.add ("people"); } public boolean issafe (@SuppressWarnings ("rawtypes") Liste) {if (list.contains ("fish") && list.contains ("cat") || list.contains ("cat") && list.contains ("Hund") {return false; } else {return true; }} public void Thistothat () {string str = listTHIS.get (0); listThis.remove (str); if (this.ISSAFE (listThis)) {System.out.println ("Der Landwirt nimmt" + str + "von diesem Ufer zum anderen Ufer"); System.out.println ("this Shore" + listThis + "/b" + "Out Other Shore" + LISTTHAT); System.out.println (); listThat.add (str); thtothis (); } else {listThis.add (str); Thistothat (); }} public void thtothis () {if (listThis.isempty ()) {system.out.println ("this Shore" + listThis + "/b" + "out Other Shore" + listThat); zurückkehren; } if (issafe (listThat)) {System.out.println ("Der Landwirt geht vom anderen Ufer zu diesem Ufer"); System.out.println ("this Shore" + listThis + "/b" + "Outside Shore" + LISTTHAT); System.out.println (); Thistothat (); } else {string str = listThat.get (0); LISTTHAT.REMOVE (0); if (issafe (listThat)) {System.out.println ("Der Landwirt nimmt" + str + "vom anderen Ufer zu diesem Ufer"); System.out.println ("this Shore" + listThis + "/b" + "Outside Shore" + LISTTHAT); System.out.println (); listThis.add (str); Thistothat (); } else {listThat.add (str); thtothis (); }} public static void main (String [] args) {System.out.println ("Wulin.com Testergebnisse:"); System.out.println (); New Crossriver (). Thistothat (); }}Auslaufergebnisse:
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.