Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/10/2014, 10:33
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 5 meses
Puntos: 49
Respuesta: Sólo 2 bucles para sumar todas combinaciones de tres números de un vector

Cita:
Iniciado por Lifka Ver Mensaje
C++ preferiblemente.
.......................... Pero el problema es que no sé como cubrir todas las combinaciones de tres números del vector usando sólo dos bucles.
<¿Y quién obliga a dos bucles?. Para las combinaciones tomados de tres en tres me basta un for :

Código C++:
Ver original
  1. #include <iostream>
  2. #include<vector>
  3.  
  4. int main ( void ) {
  5.   size_t i = 0 , j = 1 , k = 2  , cont = 1 ;
  6.   std::vector < int > num = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 /**/} ;
  7.   for ( k = j + 1  ; k <= num.size ( ) ; k++ ) {
  8.     if ( k == num.size ( )  )
  9.         j++ , k = j + 1 ;
  10.       if ( k < num.size ( ) && i < num.size ( ) - 1 )  
  11.         std::cout << "( "<< cont << "  )"<< "   " << "[  " << num [ i ] << "   " <<  num [ j ] << "   " << num [ k ]  << "  ]" << std::endl  , cont++ ;
  12.     if ( j == num.size ( ) - 1  )
  13.       i++ , j = i + 1 , k = j ;
  14.   }
  15.   return  std::cout << "\n\nTotal de combinaciones : " << cont - 1 , 0 ;
  16. }

¡¡¡Saluditos!!!