Se pide comprobar si un vector es capicua mediante una variable bandera. Dicha variable tomara el valor 1 si el vector es capicua y 0 si el vector no lo es. Para ello, se ha implantado una función llamada "avisador" de tipo bool la cual recorrerá el vector por delante y por detrás mediante dos contadores, i y j. Se irá comprobando si los valores que toma el vector en esas posiciones son iguales respectivamente y finalmente la función devolverá 1 o 0. A continuación se muestra el programa.
1 #include <iostream>
2 #include <vector>
3 using namespace std;
4 bool avisador(vector<int>);
5
6 int main()
7 {
8 vector<int> v{1,2,2,1};
9 bool bandera=avisador(v); //Sera 0 o 1
10
11 if(bandera)
12 cout << "NO ES CAPICUA" << endl;
13 else
14 cout << "ES CAPICUA" << endl;
15 }
16
17 bool avisador(vector<int> v)
18 {
19 size_t j=v.size()-1;
20
21 for(size_t i=0; i<v.size()/2; i++)
22 {
23 if(v.at(i)!=v.at(j))
24 return 1;
25 j--;
26 }
27 return 0;
28 }
No hay comentarios:
Publicar un comentario