Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/10/2014, 07:14
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Sólo 2 bucles para sumar todas combinaciones de tres números de un vector

Suponiendo que cada combinación únicamente se ha de contabilizar una vez puedes probar con algo tal que:

Código C++:
Ver original
  1. int main( )
  2. {
  3.   std::vector< int > numeros = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  4.  
  5.   for ( unsigned int i=0; i<numeros.size( ) - 2; ++i )
  6.   {
  7.     unsigned int j = i+1;
  8.     unsigned int k = j+1;
  9.     while ( j < numeros.size( ) && k < numeros.size( ) )
  10.     {
  11.       std::cout << numeros[ i ] << numeros[ j ] << numeros[ k ] << std::endl;
  12.  
  13.       k++;
  14.       if ( k == numeros.size( ) )
  15.       {
  16.         j++;
  17.         k = j+1;
  18.       }
  19.     }
  20.   }
  21. }

Como puedes ver imprime todas las combinaciones posibles de tres números.