Cool C/C++

Programacion en C/C++

Home Foros
Bienvenido, Invitado
Por favor Identificarse o Registrarse.    Contraseña olvidada?

Numeros capicuas
(1 viendo) (1) Invitado
AbajoPágina: 1
TEMA: Numeros capicuas
#121
Numeros capicuas Creado el día: 02/08/2011 13:21 Karma: 0
Hola buenas tardes
Les escribo pidiéndoles una ayuda en un ejercicio que presente en un examen y no lo pude resolver y me quede con la duda desde entonces
Espero me puedan ayudar
El ejercicio era realizar un algoritmo que encuentre los primeros N numeros que se leen igual tanto de derecha a izquierda como de izquierda a derecha, ejemplo: 646 - 343 y 787 .
Espero me ofrezcan una ayuda
WizKnight
Navegador Iniciado
Mensajes: 2
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
 
#122
Re: Numeros capicuas Creado el día: 02/08/2011 15:03 Karma: 0
Hola. Una forma sería convertir cada número a cadena, copiarla, invertir la copia y finalmente comparar. Si son iguales, es capicúa.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* reverse(char* s)
{
int i, j;
char c;
 
for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
 
return s;
}
 
char* itoa(int n, char s[])
{
int i, sign;
 
/* Registrar el signo */
if ((sign = n) < 0)
n = -n;
 
i = 0;
do {
s[i++] = n % 10 + '0';
} while ((n /= 10) > 0);
 
if (sign < 0)
s[i++] = '-';
s[i++] = '\0';
 
reverse(s);
 
return s;
}
 
void mostrarCapicuas(const int n)
{
int i, j;
char a[80], b[80];
 
for (j = 10, i = 0 ; i < n; ++j) {
itoa(j, a);
strcpy(b, a);
reverse(b);
 
if (!strcmp(b, a)) {
if (i % 10 == 0) putchar('\n');
printf("%5d ", j);
fflush(stdout);
++i;
}
}
}
 
int main(void)
{
int n;
 
puts("Este programa encuentra los n primeros enteros capicuas\n");
 
printf("Deme n: ");
fflush(stdout);
scanf("%d", &n);
 
mostrarCapicuas(n);
 
putchar('\n');
return 0;
}
 
Un saludo.
eduar2083
Navegador Iniciado
Mensajes: 4
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
 
#123
Re: Numeros capicuas Creado el día: 02/08/2011 16:46 Karma: 0
Me alegra que me haigas sacado de la duda, por casualidad te sabes otra forma que no sea por cadena, aun no me relaciono con ellas GRACIAS!
La verdad es que utilizaste funciones que no entiendo que hacen
PERO GRACIAS A TU PROGRAMA YA SE HACERLO, SIGO LEYENDO Y PROBANDO EL CODIGO PARA APRENDERLO
WizKnight
Navegador Iniciado
Mensajes: 2
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
Última edición: 02/08/2011 17:14 por WizKnight.
El administrador ha deshabilitado la escritura pública.
 
ArribaPágina: 1
obtén los últimos mensajes directamente en tu escritorio