Red de conocimientos turísticos - Conocimientos sobre calendario chino - Granjero cruzando el río (solución de programación)

Granjero cruzando el río (solución de programación)

Los resultados de la operación son los siguientes:

Llevar la oveja a la otra orilla

Regresar a la orilla de origen con las manos vacías

Trae al lobo a la otra orilla

Trae a la oveja al otro lado

Trae las verduras al otro lado

Vuelve al lado principal vacío- entregado

Trae la oveja al otro lado

Trae la oveja al otro lado

Regresa a la orilla de casa con las manos vacías

Traer verduras a la otra orilla

Traer las ovejas a la orilla de origen

Traer al lobo a la otra orilla

Regresar a la orilla de origen vacío- entregado

Trae la oveja a la otra orilla

Las anteriores son todas las soluciones encontradas ***Hay dos soluciones.

El programa es el siguiente:

#include lt; stdio.hgt

#include lt; #include lt ;string.hgt;

#define MAX_STEP 20

//index: 0 - lobo, 1 - oveja, 2 - vegetal, 3 - granjero, valor: 0 - costa local, 1-Otra costa

int a[MAX_STEP][4];

int b[MAX_STEP]

char *name[] =

{

"Con las manos vacías",

"Trae un lobo",

"Trae una oveja",

"Trae verduras"

};

búsqueda vacía(int iStep)

{

int

if (a[iStep][0] a[iStep][1] a[iStep][2] a[iStep][3] == 4)

{

for (i = 0 ; i lt; iStep; i )

{

if (a[i][3] == 0)

{

printf("está al otro lado\n", nombre[b[i] 1]

}

else

{

printf("ha regresado a la costa de origen\n", nombre[b[i] 1]);

printf("\ n");

retorno;

}

para (i = 0; i lt; iStep; i)

{

if (memcmp(a[i], a[iStep], sizeof(a[i])) == 0)

{

retorno;

}

}

si (un[iPaso][1] != un[iPaso][3) ] amplificador; amplificador (a[iStep][ 2] == a[iStep][1] || a[iStep][0] == a[iStep][1]))

{

retorno;

p>

}

para (i = -1; i lt; = 2; i)

{

b[iPaso] = i;

memcpy(a[iPaso 1], a[iPaso], tamaño de(a[iPaso 1])); a[iPaso 1][3] = 1 - a[iPaso 1][3]

if (i == -1)

{

buscar(iPaso 1);

}

else if (a[iPaso][i] == a[iPaso][3])

{

a[iPaso 1][i ] = a[iPaso 1][3]

búsqueda(iPaso 1

}

<); p>}

}

int principal() <

/p>

{

búsqueda(0);

devuelve 0;