Cet article décrit la simple mise en œuvre du problème des agriculteurs traversant la rivière à Java. Partagez-le pour votre référence, comme suit:
1. Description du problème
Le vieil homme veut couper du poisson, des chiens et des chats de l'autre côté de la rivière de l'autre côté. Il y a un bateau qui ne peut s'asseoir qu'une seule personne. Le vieil homme ne peut amener qu'un seul animal pour traverser la rivière à chaque fois. Lorsque le vieil homme est absent, le chien mordra le chat et le chat mangera du poisson. Comment traversez-vous la rivière en séquence?
2. Implémentez le code
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; booléen thatflag = false; * / public crossriver () {listThis.add ("dog"); listThis.add ("poisson"); 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 ("l'agriculteur prend" + str + "de cette rive à l'autre rivage"); System.out.println ("This Shore" + ListThis + "/ B" + "Out Other Shore" + ListThat); System.out.println (); listThat.add (str); Thittothis (); } else {listThis.add (str); Thistothat (); }} public void thatTothis () {if (listThis.isempty ()) {System.out.println ("this Shore" + listThis + "/ b" + "out autre rive" + listHat); retour; } if (issafe (listThat)) {System.out.println ("l'agriculteur passe de l'autre rivage à ce rivage"); System.out.println ("This Shore" + listThis + "/ b" + "Outside Shore" + listHat); System.out.println (); Thistothat (); } else {String str = listThat.get (0); listThat.Remove (0); if (issafe (listHat)) {System.out.println ("l'agriculteur prend" + str + "de l'autre rivage à cette rive"); System.out.println ("This Shore" + listThis + "/ b" + "Outside Shore" + listHat); System.out.println (); listThis.add (str); Thistothat (); } else {listThat.add (str); Thittothis (); }} public static void main (String [] args) {System.out.println ("Wulin.com Résultats de test:"); System.out.println (); new Crossriver (). Thistothat (); }}Résultats en cours:
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.