#include <stdio.h>
#include <string.h>
int es_capicua(char cadena[20]);
int main()
{
long i, total=0, numero;
char cadena[20];
printf("Ingrese numero: ");
scanf("%ld", &numero);
printf("Numeros capicua: ");
for(i=1; total<numero; i++)
{
sprintf(cadena, "%ld", i);
if(es_capicua(cadena))
{
printf("%ld ", i);
total++;
}
}
fflush(stdin);
getchar();
return 0;
}
int es_capicua(char cadena[20])
{
int i;
char invertida[20];
/* Halla la cadena invertida */
for(i=0; i < strlen(cadena); i++)
invertida[ i ]=cadena[strlen(cadena)-i-1];
/* Coloca caracter de fin de cadena */
invertida[ i ] = '\0';
/* Realiza la comparacion */
if(!strcmp(cadena, invertida))
return 1; /* es capicua */
return 0; /* no es capicua */
}