elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Octubre 2008, 20:35  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios (Moderador: soplo)
| | | |-+  ejercicio de c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: ejercicio de c  (Leído 1910 veces)
lito

Desconectado Desconectado

Mensajes: 2


Ver Perfil
ejercicio de c
« en: 08 Septiembre 2004, 08:31 »


algoritmo que al ingresar un numero por pantalla,al numero ya ingresado le suma su numero invertido,y   este resultado tiene q ser palindrome(que se pueda leer de igual forma de izquieda a derecha .  eje:

1234=4321           , si el resultado es palindrome  imprimir por pantalla 1paso, siino ver en cuantos pasos es posible llegar a un numero palindrome
,esto realizarlo en cualquier base, dde la 10 hasta la base 2.

cualquie duda escribanme.
yo lo hice pero no se porq no me compilo.
me salia en pantalla  pow:domain

#include<stdio.h>
#include<math.h>

int funinv(int);

int funsuma(int);

int funacum(int);

int basex;
int funcionbasex(int,int);
int funbase(int,int);
main()

{

unsigned long int n,boolean,pasos,v,band,basex,num;




do{

   printf("ingrese un numero:");

   scanf("%d",&n);

   }while(n<0);

  num=n;
 for(basex=9;basex>=2;basex--)
  {
 band=1;
while(num!=0)
{
  v=num%10;
  num=num/10;

    if(v>=basex)
     {
     printf("base %d: ? pasos",basex);
     band=0;
     }

 }
    /*printf("band:%d",band);*/ /*hasta aqui compila bien*/
while(band==1)
     {
     pasos=0;



     do{

        n=funacum(n);

        printf("funacumda:%d",n);

        boolean=funsuma(n);

        pasos=pasos+1;

        }while(boolean==0);



printf("Base %d:%d pasos",basex,pasos);

     }
}
}

/*------------------------------------------------------------------------*/

int funinv(int n)     /*FUNCION PARA INVERTIR UN NUMERO*/

{

int inv,num1,r;

num1=n;



if(n>=10)

  {

  inv=0;

  while(n!=0)

       {

       r=n%10;

       n=n/10;

       inv=(r+(inv*10));

       }

   }



if((num1>=0)&&(num1<10))

   {

   inv=num1;

   }

return(inv);

}

/*---------------------------------------------------------------------------*/

int funsuma(int suma)

{

int flag;                          /*VERIFICACION DEL NUMERO PALINDROME*/



if(suma==funinv(suma))

   {

   flag=1;

   }

   else

       if(suma!=funinv(suma))

         {

         flag=0;

         }

return(flag);

}

/*-------------------------------------------------------------------*/

int funacum(int n)

{                                                   /*SUMAS SUCESIVAS PARA VER LA COMPROBACION DE LOS PASOS*/

int adicion,a,sumabase;

a=funinv(n);
sumabase=(funbase(n,basex)+funbase(a,basex));
adicion=funcionbasex(sumabase,basex);

return(adicion);

}
/*------------------------------------------------------------------------*/
/*FUNCION PARA PASAR DE BASE 10 A BASE X*/
int funcionbasex(int n,int basex)
{
int inv,num1,h;
num1=n;

if(n>=10)
  {
   inv=0;

   while(n!=0)
        {
         h=n%basex;
         n=n/basex;
         inv=h+inv*10;
         }
   }
if((num1>=0)&&(num1<10))
    {
     inv=num1;
    }
    inv=funinv(inv);
return(inv);
}

/*------------------------------------------------------------------------------*/
/*FUNCION PARA PASAR DE BASE x A BASE 10*/

int funbase(int q,int base1)
{
int cont, i,sum,T[100],a;
cont=0;

while(q!=0)
      {
       T[cont]=q%10;
       q=q/10;
       cont=cont+1;
       }
sum=0;
for(i=0;i<=cont-1;i++)
   {
    a=pow(base1,i);
    sum=(sum+(T*a));
   }
return(sum);
}
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC