Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luis456 en 8 Diciembre 2012, 14:13 pm



Título: Combinaciones ordenadas sin repeticiones en c++
Publicado por: luis456 en 8 Diciembre 2012, 14:13 pm
Aca traigo otro código incompleto reto para Leosansan jeje es broma estoy haciendo que este código me combine ( no que permute que no es lo mismo ) cualquier cantidad de numeros que le introduzca desde 00 hasta el 999, sin repeticiones de numeros en los resultados.pero en los resultados que le pida al programa desde pedir que los valla mostrando en combinaciones de tres de cuatro cinco etec. no puede repetir como esto.

pero veran que la combinacion tiene una forma de tres en tres la funcion combinar

1   2   4  4   5
10 11 11 22 24

#include <iostream>
#include <algorithm>
using namespace std;

int main () {
   int *numeros, total;
   cout<<"Cuantos numeros desea ingresar?: ";
   cin>>total; //LEO LA CANTIDAD DE NUMEROS
   numeros = new int[total];//CREO EL ARRAY CON LA CANTIDAD DE NUMEROS QUE LE INGRESAMOS
   for(int i = 0; i < total; i++){
      cout<<"Ingrese el "<<i+1<<" numero: ";      
      cin>>numeros;//CAPTURO NUMERO POR NUMERO EN EL ARRAY
      for(int j = i-1; j >=0 ; j--){ //COMPRUEBO RECORRIENDO LOS ANTERIORES NUMEROS QUE CAPTURE SI EL NUEVO NUMERO ESTA REPETIDO
         if(numeros == numeros[j]){
            cout<<"El numero esta repetido ingrese otro\n";
            i--;
            break;
         }
      }
   }
   cout<<"\nResultado\n";
   do {
      //INFORMO DE A TRES NUMEROS <-------esta es la clave de combinar
      cout << numeros[1] << " " << numeros[2] << " " << numeros[3] << " " << endl; ///aca esta la jugada y estoy trancado ya que me repite los numeros
        // en los resulatdos lo deje en tres pero tiene que seguir cuatro cinco y los que le pida que muestre en las combinaciones
      
   } while ( next_permutation (numeros,numeros+total) );//SIGO INTERCAMBIANDO NUMEROS PARA LA PROXIMA MUESTRA
   delete numeros;
   system("pause");
   return 0;
}


Luis