Realice un algoritmo que lea un vector y a partir de él forme un segundo vector, de tal forma que el primer elemento pase a ser el segundo, el segundo pase a ser el tercero, el último pase a ser el primero, y así sucesivamente.en c++

Respuestas

Respuesta dada por: Anónimo
1

Para poder resolver este ejercicio, lo único que debemos utilizar es el operador módulo, que nos facilitará el trabajo, el algoritmo es el siguiente

#include <vector>

using namespace std;

vector<int> moverValores( const vector<int>& arreglo) {

   int tam = arreglo.size();

   vector<int> nuevoArreglo(tam);

   for(int i = 0; i < tam; i++)

       nuevoArreglo[i] = arreglo[(i+1) % tam];

   return nuevoArreglo;

}

Como se ve, cuando la variable i llega a tam - 1, (i+1)% tam = (tam - 1 + 1) % tam = tam % tam = 0, y es el primer valor del arreglo, en el resto de posiciones no hay problema, puesto que i + 1 < tam

Preguntas similares