Décimo Cuarto Programa

#WSQ08

En este programa se necesitaron distintas librerías para poder realizarlo dado que aunque se podía hacer un loop y así revisar cada número, se necesitaba una función que pudiera leer el número al revés. Para hacer esto utilizamos la función reverse  (), pero a la ves esto surge complicaciones dado que para esta función se necesitan valores de tipo string y no valores tipo entero.

Código:

#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
bool is_palindrome(BigInteger n)
{

string a1= bigIntegerToString(n);

string a2=a1;

reverse(a2.begin(), a2.end());

return (a2==a1);

}

BigInteger apply196(BigInteger n){

string a1= bigIntegerToString(n);

string a2=a1;

reverse(a1.begin(), a1.end());

return n+ stringToBigInteger(a1);

return n;

}

 

int main() {

int nolychrel=0, palin=0, lychrel=0;

BigInteger num;

int inferior, mayor;

 

cout <<«Calculadora de palíndromos»<<endl<<‘\n’;

cout<<«Ingresa tu número inferior»<<endl;

cin>>inferior;

cout<<‘\n'<<«Ingresa tu número mayor»<< endl;

cin>>mayor;

 

for(int i=inferior; i<=mayor; i++){

num=i;

 

 

if(is_palindrome (num)==true){

palin=palin+1;

}

 

else {

int contador=0;

bool lych= true;

while (contador<=30){

num= (apply196(num));

if((is_palindrome(num))==true){

nolychrel=nolychrel+1;

lych=false;

break;

}

else{

contador=contador+1;

}

}

if (lych){

cout<<‘\n'<<«Acabo de encontrar un número lychrel y es: «<< i<<endl;

lychrel=lychrel+1;

}

}

}

cout<<‘\n'<<«Entre su rango de números hay:»<<endl<<‘\n’;;

cout<<palin<<» palíndromos»<<endl<<‘\n’;;

cout<<lychrel<<» números lychrel»<<endl<<‘\n’;;

cout<<nolychrel<<» números no lychrel»<<endl<<‘\n’;;

 

return 0;

}

Referencias:

https://kenscourses.com/tc1017fall2017/tag/wsq08/

 

Deja un comentario