F1 Help! La solución que buscabas

Desarrollo, programación, tips, consejos y soluciones para los usarios de PC

viernes, 20 de noviembre de 2009

Numeros Palindromos (Capicuas)

En esta entrega chekearemos si un numero es palindromo, es decir, si es capicua (se lee igual de izquierda a derecha o viceversa).

La funcion es simple calculamos el numero inverso y despues camparamos:

int palindromo(int numero){
int original, inverso, digito;
original = numero;
inverso = 0;
while (numero != 0){
digito = numero % 10;
inverso = inverso * 10 + digito;
numero = numero / 10;
}
if (inverso == original) return 1;
return 0;
}

Podemos observar, que en el while se calcula el numero inverso. Simplemente se calcula el resto de dividir el numero por 10. Esto nos da el primer digito. A nuestro numero inverso lo multiplicamos por diez y le sumamos ese resto, para agregarle que obtuvimos antes. Y por ultimo a nuestro numero le calculamos la division entera (en c es por defecto al ser variables enteras) por 10 para quitar el digito leido.

Despues ponemos un IF para determinar la igualdad entre el numero y el inverso obtenido.

No hay comentarios: