Hola, andaba con un problema corto y quería ver si alguien me podía ayudar.
La cuestión es que tengo que sumar todos los elementos de un vector cualquiera usando la técnica divide y vencerás.
Yo estuve haciendo este código pero tengo problemas con los índices inicio y fin
Hay veces en las que el índice de inicio es mayor al del fin, a causa de la división, cuando le pongo algún +1 para que eso no pase el problema está en otros índices.
Gracias.
La cuestión es que tengo que sumar todos los elementos de un vector cualquiera usando la técnica divide y vencerás.
Yo estuve haciendo este código pero tengo problemas con los índices inicio y fin
Código [Seleccionar]
#include <iostream>
#include <cstdlib>
using namespace std;
int sumaDyV( int *vec, int inicio, int fin );
int main() {
int longitud;
cout<<"Dimension del vector: ";
cin>>longitud;
int *vec = new int[longitud];
for(int i = 0; i<longitud;i++) {
cout<<"\nNumero en la posicion "<<i<<": ";
cin>>vec[i];
}
cout<<"\nResultado: "<<sumaDyV( vec, 0, longitud-1 );
delete[] vec;
return 0;
}
int sumaDyV( int *vec, int inicio, int fin ) {
if( inicio == fin ) {
return vec[inicio];
}
return sumaDyV(vec, inicio, fin/2) + sumaDyV( vec, (fin/2) +1, fin);
}
Hay veces en las que el índice de inicio es mayor al del fin, a causa de la división, cuando le pongo algún +1 para que eso no pase el problema está en otros índices.
Gracias.