예제 #1
0
void pasarAArreglo(int size, int num){
    int A[size];
    int i = size-1;
    int resto;
    for(i; i >= 0; i--){
        resto = num%10;
        num = num/10;
        A[i]=resto;
    }
    permutar(A, size, combPosibles(size));
}
예제 #2
0
///Cargar el vector con las posibles permutaciones
void permutar(funciones *donde, char *cadena, int inicio){
	int j;
	int fin = strlen(cadena);
	if(inicio==fin){ //Si ya diste tod0 vuelta
		donde->datos[donde->puntero++] = strdup(cadena); //el cpy y malloc
	}else{
		for(j=inicio; j<= fin; j++){
			xor((cadena+inicio), (cadena+j));
			permutar(donde, cadena, inicio+1);
			xor((cadena+inicio), (cadena+j)); //rollback
		}
	}
}