Bueno compañeros. Acá les dejo un algoritmo con su respectiva documentación que nos dice si un número es palindromo o no.
#include <iostream>
#include <conio.h>
#include <Math.h>
using namespace::std;
int num,cnum1,cnum2,i=0,j=1,k,cifraa,cifrab;
bool sw=true;
//ALGORITMO QUE DICE SI UN NUMERO ES PALINDROMO O NO
void main(){
//Se lee el numero
cout<<"Digite un numero entero: ";
cin>>num;
//Se saca el valor absoluto del numero ya que el signo es despreciable
cnum1=abs(num);
//Se saca el numero de cifras del numero
while(cnum1>0){
i++;
cnum1=cnum1/10;
}
//Volvemos a asignar la copia al numero original ya que se ha modificado debido al calculo de las cifras
cnum1=num;
//Comparamos hasta la mitad del numero y mientras que las cifras a comparar sean iguales
while(j<=i/2 && sw==true){
cnum2=num;
//Se saca la cifra mas a la derecha
cifraa=cnum1%10;
//Un contador k para sacar la cifra mas a la izquierda
k=0;
//La formula i-j nos dice hasta donde se debe seguir reduciendo el numero para sacar la cifra mas a la izquierda
while(k<=i-j){
cifrab=cnum2%10;
cnum2=cnum2/10;
k++;
}
//Ya teniendo las cifras, se comparan. Si son diferentes se cambia el switch a falso
if(cifraa!=cifrab){
sw=false;
}
cnum1=cnum1/10;
j++;
}
/*Si el switch es verdadero es porque el numero es palindromo o capicúa
Si es falso es porque no es palindromo o capicúa*/
if (sw==true){
cout<<"El numero "<<num<<" es palindromo.";
}
else{
cout<<"El numero "<<num<<" no es palindromo.";
}
_getch();
}