[Programación] Combinaciones

25/04/2006 - 19:15 por Alberto | Informe spam
Estoy en un pequeño lio. Tengo que hacer un programa que escriba todas las
combinaciones posibles de las letras A, B, C y D. Lo estoy intentando con
recursividad pero no doy logrado hacer el algoritmo. Un agradecería una
pequeña ayuda.

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Hernando Gisinger
25/04/2006 - 20:31 | Informe spam
Hola

Creo que funcionaría algo así:

int i1, i2, i3, i4;

for (i1 = 'A'; i1 <= 'D'; i1++)
{
for (i2 = 'A'; i2 <= 'D'; i2++)
{
for (i3 = 'A'; i3 <= 'D'; i3++)
{
for (i4 = 'A'; i4 <= 'D'; i4++)
{
System.Console.WriteLine("{1}{2}{3}{4}, i1.ToString(),
i2.ToString(), i3.ToString(), i4.ToString());
}
}
}
}

Si no quieres que las letras se repitan agrega estos if:

despues del segundo for:
if (i2 != i1)

despues del tercer for:
if (i3 != i1 && i3 != i2)

despues del cuarto for:
if (i4 != i1 && i4 != i2 && i4 != i3)

Saludos, Hernando

"Alberto" escribió en el mensaje
news:
Estoy en un pequeño lio. Tengo que hacer un programa que escriba todas las
combinaciones posibles de las letras A, B, C y D. Lo estoy intentando con
recursividad pero no doy logrado hacer el algoritmo. Un agradecería una
pequeña ayuda.

Muchas gracias


Respuesta Responder a este mensaje
#2 Alberto
25/04/2006 - 21:22 | Informe spam
Cierto, pero me gustaría codificarlo para un caso general. Por ejemplo, que
las letras estuviesen en un vector de char e hiciese todas las combinaciones
independientemente del número de letras.
Gracias en cualquier caso.

"Hernando Gisinger" escribió en el mensaje
news:
Hola

Creo que funcionaría algo así:

int i1, i2, i3, i4;

for (i1 = 'A'; i1 <= 'D'; i1++)
{
for (i2 = 'A'; i2 <= 'D'; i2++)
{
for (i3 = 'A'; i3 <= 'D'; i3++)
{
for (i4 = 'A'; i4 <= 'D'; i4++)
{
System.Console.WriteLine("{1}{2}{3}{4}, i1.ToString(),
i2.ToString(), i3.ToString(), i4.ToString());
}
}
}
}

Si no quieres que las letras se repitan agrega estos if:

despues del segundo for:
if (i2 != i1)

despues del tercer for:
if (i3 != i1 && i3 != i2)

despues del cuarto for:
if (i4 != i1 && i4 != i2 && i4 != i3)

Saludos, Hernando

"Alberto" escribió en el mensaje
news:
Estoy en un pequeño lio. Tengo que hacer un programa que escriba todas
las
combinaciones posibles de las letras A, B, C y D. Lo estoy intentando con
recursividad pero no doy logrado hacer el algoritmo. Un agradecería una
pequeña ayuda.

Muchas gracias






Respuesta Responder a este mensaje
#3 Octavio Hernandez
26/04/2006 - 01:45 | Informe spam
Alberto,

Para el caso general tendrás que hacer un algoritmo recursivo.
Mira este hilo de discusión:

http://p2p.wrox.com/topic.asp?TOPIC_ID)654

Salu2 - Octavio



"Alberto" escribió en el mensaje
news:
Cierto, pero me gustaría codificarlo para un caso general. Por ejemplo,
que las letras estuviesen en un vector de char e hiciese todas las
combinaciones independientemente del número de letras.
Gracias en cualquier caso.

"Hernando Gisinger" escribió en el mensaje
news:
Hola

Creo que funcionaría algo así:

int i1, i2, i3, i4;

for (i1 = 'A'; i1 <= 'D'; i1++)
{
for (i2 = 'A'; i2 <= 'D'; i2++)
{
for (i3 = 'A'; i3 <= 'D'; i3++)
{
for (i4 = 'A'; i4 <= 'D'; i4++)
{
System.Console.WriteLine("{1}{2}{3}{4}, i1.ToString(),
i2.ToString(), i3.ToString(), i4.ToString());
}
}
}
}

Si no quieres que las letras se repitan agrega estos if:

despues del segundo for:
if (i2 != i1)

despues del tercer for:
if (i3 != i1 && i3 != i2)

despues del cuarto for:
if (i4 != i1 && i4 != i2 && i4 != i3)

Saludos, Hernando

"Alberto" escribió en el mensaje
news:
Estoy en un pequeño lio. Tengo que hacer un programa que escriba todas
las
combinaciones posibles de las letras A, B, C y D. Lo estoy intentando
con
recursividad pero no doy logrado hacer el algoritmo. Un agradecería una
pequeña ayuda.

Muchas gracias










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida