Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Davidsito1598 en 15 Junio 2018, 15:35 pm



Título: Ayuda con mi codigo quiero verificar si un numero es palindrome porfa y gracias
Publicado por: Davidsito1598 en 15 Junio 2018, 15:35 pm
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void LeerCadena(char cad[])
{
   int tecla;
   int cont=0;
   do
   {
        scanf("%d",&tecla);
        cad[cont]=tecla;
        cont++;
   }while (cont<=10);
   cad[cont]='\0';
   // para no ingresar se usa la cadena ejemplo
   //strcpy(cad,"Sigue las ultimas noticias de #Cuenca, #Ecuador y el Mundo en @eltiempocuenca #marcandodiferencia @IGecuador\0");
   
}
void Palindrome (char c [10])
{
      int c2=0,i=0,p,j;
      j=9;
      do
      {
         i++;
         j--;
         if (c==c[j])
         {
            //c2++;
         }
         i++;
         j--;
      }while (i<=4);
   
   if (c2=5)
   {
      printf("\n El numero es palindrome");
   }
   else
   {
      printf ("\n El numero no es palindrome");
   }
}
int main ()
{
   char c [10];
   printf("Ingrese un numero \n");
   LeerCadena (c);
   Palindrome(c);
}


Título: Re: Ayuda con mi codigo quiero verificar si un numero es palindrome porfa y gracias
Publicado por: Beginner Web en 15 Junio 2018, 23:38 pm
Puedes invertir el numero utilizando recursividad y comprobando si el numero que ingresaste es igual al valor de retorno de la funcion recursiva , en ese caso escribir CAPICUA, caso contrario NO CAPICUA, esto para los numeros numeros enteros no hace falta que sea una cadena.

funcion invertir(n: entero, r: entero) : entero
si(n==0)
invertir <-r;
sino
r*=10;
r+=n%10;
invertir<- invertir(n/10, r);

inicio
numero, resultado=0 : entero
escribir "Ingrese numero:"
leer(numero)
si(numero==invertir(numero,resultado)
escribir ("CAPICUA")
sino
escribir ("NO CAPICUA")
finsi
fin

Bueno si quieres con cadenas aca te dejo tu codigo modificado

Código
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. void LeerCadena(string &c)
  7. {
  8.   cout << "Ingrese numero: ";
  9.   cin >> c;
  10.   // para no ingresar se usa la cadena ejemplo
  11.   //strcpy(cad,"Sigue las ultimas noticias de #Cuenca, #Ecuador y el Mundo en @eltiempocuenca #marcandodiferencia @IGecuador\0");
  12.  
  13. }
  14. void Palindrome (string c)
  15. {
  16.      string aux;
  17.      int j=c.length()-1;
  18.      aux=c;
  19.   for(int i=0;i<c.length();i++){
  20.   if(c[i]!=aux[j]){
  21.                        break;
  22.  }
  23.  j--;
  24. }
  25.   if (j==-1)
  26.   {
  27.      printf("\n El numero es palindrome");
  28.   }
  29.   else
  30.   {
  31.      printf ("\n El numero no es palindrome");
  32.   }
  33. }
  34. int main ()
  35. {
  36.   string c;
  37.   LeerCadena (c);
  38.   Palindrome(c);
  39. }
  40.