Este artigo descreve a simples implementação do problema dos agricultores atravessando o rio em Java. Compartilhe -o para sua referência, como segue:
1. Descrição do problema
O velho quer cortar peixes, cães e gatos do outro lado do rio para o outro lado. Há um barco que só pode sentar uma pessoa. O velho só pode trazer um animal para atravessar o rio todas as vezes. Quando o velho estiver ausente, o cachorro morde o gato e o gato come peixe. Como você atravessa o rio em sequência?
2. Código de implemento
Demonstração do pacote; importar java.util.arraylist; importar java.util.list; public class CrossRiver {list <string> listThis = new ArrayList <String> (); List <String> listThat = new ArrayList <String> (); /*boolean thisflag = true; boolean queflag = false;*/ public crossriver () {listthis.add ("cão"); listThis.add ("peixe"); listThis.add ("gato"); // listthis.add ("pessoas"); } public boolean issafe (@suppresswarnings ("RawTypes") lista) {if (list.contains ("fish") && list.contains ("cat") || list.contains ("gat") && list.contains ("cão")) {return; } else {return true; }} public void thisTothat () {string str = listThis.get (0); listThis.Remove (STR); if (this.issafe (listThis)) {System.out.println ("O agricultor toma" + str + "desta costa para a outra costa"); System.out.println ("this Shore" + listThis + "/b" + "Out Other Shore" + listThat); System.out.println (); listThat.add (str); thatthis (); } else {listThis.add (str); thisTothat (); }} public void thatTothis () {if (listThis.isEmpty ()) {System.out.println ("this Shore" + listThis + "/b" + "Out Other Shore" + listThat); retornar; } if (issafe (listThat)) {System.out.println ("O fazendeiro vai da outra costa para esta costa"); System.out.println ("this Shore" + listThis + "/b" + "fora da costa" + listathat); System.out.println (); thisTothat (); } else {string str = listThat.get (0); listThat.Remove (0); if (issafe (listathat)) {System.out.println ("O agricultor toma" + str + "da outra costa para esta costa"); System.out.println ("this Shore" + listThis + "/b" + "fora da costa" + listathat); System.out.println (); listThis.add (STR); thisTothat (); } else {listThat.add (str); thatthis (); }} public static void main (string [] args) {System.out.println ("Wulin.com Resultados dos testes:"); System.out.println (); New CrossRiver (). ThisTothat (); }}Resultados em execução:
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.