Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - do-while

#1211
En el siguuieinte post hay un enlace con codigo en C sobre este tema.

http://foro.elhacker.net/programacion_cc/combinatoria_code-t266973.0.html

Espero que sirva de algo. :)

Hasta pronto!!!
#1212
Aqui esta mi solucion. :)

Hay soluciones para hartarse...  ;D

void combinaciones(int lista[],int numElementosLista,int numElementosCombinacion,int paso)
{
    int i;
    static int *listaCombinacion=NULL;

    if(numElementosLista < numElementosCombinacion)
        return;

    if(!listaCombinacion) /* si la lista esta sin inicializar -> reservar memoria */
        listaCombinacion = (int*) malloc(numElementosCombinacion * sizeof(int));

    if(numElementosCombinacion == 0) /* si ya se ha llegado al numero de elementos deseado */
    {
        /* imprimir resultado */
        for(i=0 ; i < paso ; i++)
            printf("%d ",listaCombinacion[i]);
        printf("\n");

        return;
    }

    for(i=0 ; i <= numElementosLista - numElementosCombinacion ; i++)
    {
        listaCombinacion[paso] = lista[i]; /* poner el valor que corresponde en la combinacion */
        combinaciones(lista + i + 1,numElementosLista - 1 - i,numElementosCombinacion - 1,paso+1);
    }

    if(paso == 0) /* si se ha teminado con la primera llamada */
    {
        free(listaCombinacion);
        listaCombinacion=NULL; /* poner a NULL para sucesivas llamas a la funcion*/
    }

    return;
}
#1213
Hola,

Me he puesto a trabajar en el problema. Al no saber cuantos elementos tiene la lista, yo lo haria de forma recursiva.

Un cosilla, ¿en las combinaciones el orden importaba o no?