• Sábado 14 de Diciembre de 2024, 22:48

Autor Tema:  Ayuda Con El Codigo  (Leído 2909 veces)

Bgirl

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Ayuda Con El Codigo
« en: Jueves 27 de Mayo de 2004, 19:41 »
0
Son cubos narcicistas aquellos numeros positivos que son exactamente iguales  a la suma de sus digitos elevados al cubo. Es decir:

370 es un cubo narcicista, ya que :

370 = (3 * 3 * 3) + (7 * 7 * 7) + (0 * 0 * 0)

Excluyendo el caso trivial del 1, solo existen otros 3 cubos narcicistas, Cuales son?

Este es el codigo que tengo:


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

main()
{

int a, b, c, sum, con;

con = 1     //**inicializo contador

 while ( con < 1000)  //**son numeros de tres digitos
 {
  a = con % 10;   //**primer digito
  b = a % 10;     //**segundo digito
  c = b % 10;     //**tercer digito

  sum = (a * a * a) + (b * b *B) + (c * c * c); //**elevo al cubo y sumo

    if (sum == con)   //** evaluo si son iguales
    printf("%d", con);       //**es un cubo narcicista

    con++;      //**incremento contador
  }
}

Por que no me da??????????

Gracias X Todo.....
[size=109]Hack To Construct, Never To Destroy!!!![/size]

Noel Solw

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Ayuda Con El Codigo
« Respuesta #1 en: Jueves 27 de Mayo de 2004, 20:55 »
0
Te envio el programa corregido. No hay muchos errores. El unico realemnte impoprtante era en la forma de descomponer el numero en sus digitos

// program cubo.cpp
// written in borland c++ - ver 4.5

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

main()
{
   int a, b, c, sum, con,x;
   con = 1;  // agregamos una variable
   while(con < 1000) //**son numeros de tres digitos
   {
      x = con;
      a = x % 10; //**primer digito
      x /= 10;
      b = x % 10; //**segundo digito
      x /= 10;
      c = x % 10; //**tercer digito
      sum = (a * a * a) + (b * b * B) + (c * c * c); //**elevo al cubo y sumo
      if (sum == con) //** evaluo si son iguales
         printf("%5d    %5d\n",con,sum); //**es un cubo narcicista
      con++; //**incremento contador
   }
   return 0;
}

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Ayuda Con El Codigo
« Respuesta #2 en: Jueves 27 de Mayo de 2004, 21:27 »
0
Código: Text
  1.  
  2. #include&#60;stdio.h&#62;
  3. #include&#60;conio.h&#62;
  4. main()
  5. {
  6.         int a, b, c, sum, con=1,x;
  7.         while(con &#60; 1000)
  8.         {
  9.                 x = con;
  10.                 a = (x % 10);
  11.                 x /= 10;
  12.                 b = (x % 10);
  13.                 x /= 10;
  14.                 c = (x % 10);
  15.                 sum = ((a * a * a) + (b * b *b)  + (c * c * c));
  16.                 if (sum == con) //** evaluo si son iguales
  17.                 {
  18.                         printf(&#34;%5d %5d&#092;n&#34;,con,sum);
  19.                         getch();
  20.                 }
  21.                 con++;
  22.         }
  23. }
  24.  

No es necesario implementar la math.h  ... o bueno para que la usan?
Y es bueno el uso de los parentesis...

Pero el programita esta perfecto...

Saludos :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

C++ BorlFJ

  • Miembro activo
  • **
  • Mensajes: 52
    • Ver Perfil
    • http://www.grafmarc.com.ve/info_lenguajes
Re: Ayuda Con El Codigo
« Respuesta #3 en: Jueves 27 de Mayo de 2004, 21:36 »
0
mirá Bgirl

Citar

tu problemilla creo que anda por el % creo que no a en este caso.

                es que lo que hace el método de cubo narcicista es más que todo encontrar la números o numero que elevado al cubo de como resultado el inicial.

               encontrar esos números esta un pelo ledo  :huh:  pero es constancia lo que se necesita, para poder hallarlos.

               yo diría que analizaras nuevamente y te fijaras en la entrada del número  por ejemplo:


               se tiene;
                                    35                eh aquí un número impar narcicista

               puesto que

                                          (3*3*3) + (2*2*2) + (0*0*0)= 35

           lo que hay que tener en claro es que si se busca el método de Euclides estaremos fallando en el intento de búsqueda de estos números. por consiguiente si se usara también teorema de Newton (cuvos perfectos).
bueno en fin te podría mostrar el problema hecho pero lamentablemente no tengo disponible donde estoy el programa de C++ a ver si me corre.
te lo voy a analizar matemáticamente dale código que esta facil mujer....

                   ejemplo

                   dado P= 133; se quiere saber si es numero narcicista:

            /* se pregunta */ n1=2^3=P -->NO es > P NO
            /* se pregunta */ n2=(n1+1)^3=3^3=P -->NO es > P NO
            /* se pregunta */ n3=(n2+1)^3=4^3=P -->NO es > P NO
            /* se pregunta */ n4=(n3+1)^3=5^3=P -->NO es > P NO
            /* se pregunta */ n5=(n4+1)^3=6^3=P -->NO es > P SI


      SI ES MAYOR ENTONCES (*se supone que los numeros debe estar en las combinaciones anteriores*)
             ANALIZAR (PUEDE SER EN UN VOID O VOID --- (VOID))

        /*BUSCAR LAS COMBINACIONES QUE DEN EL NUMERO SOLICITADO*/
                   
                               si    P=(n1^3+n2^3) ----> p es narcicista sino
             /*se pregunta*/ P=(n1^3+n3^3) ----> p es narcicista NO
             /*se pregunta*/ P=(n1^3+n4^3) ----> p es narcicista NO
             /*se pregunta*/ P=(n1^3+n5^3) ----> p es narcicista SI <------ por lo tanto
                            n1^3+n5^3=P=133
                            2^3+5^3=133 LQQD...



NOTA: CUANDO PREGUNTO POR P > QUE N(n) SE SUPONE QUE EL PROGRAMA DEBE PREGUNTAR SI N ES MAYOR QUE P SI SE CUMPLE ESA CONDICIÓN SE TIENE QUE EL NUMERO O LOS NÚMEROS QUE COMPONEN Y HACEN AL NUMERO NARCICISTA ESTÁN UBICADOS EN LAS ANTERIORES COMBINACIONES.


de todas formas haganme saber los que vean mi análisis si me equivoqué en algo miren que errar es de humanos.

y en cuanto a tí Bgirl lastyima que no te tengo el programa para visualizar más la sintaxis y pasartela resuelta pero ntentalo poner en el programa ah. es fácil de ver y facil de hacer.

yo lo que pasa es que lo hice pero lo hice en Pascal que es el único programa disponible en uno de los computadores en los que estoy, y como este es un foro de C/C++  :unsure:

bueno sin mas a que hacer referencia me despido espero te sirba de algo




C++ BorlFJ
 :whistling:  :comp:  :D  :hola:
La Fuente de la vida es querer hacer las cosas como son
JC Vermudez

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Ayuda Con El Codigo
« Respuesta #4 en: Jueves 27 de Mayo de 2004, 21:52 »
0
C++ BorlFJ
Citar
  se tiene;
              35                eh aquí un número impar narcicista

              puesto que

                                          (3*3*3) + (2*2*2) + (0*0*0)= 35

yo no se por donde te fuiste pero 35 no es un # narcicista y la demostracion que haces da 35;   pero por que elevas al cubo el 2, si el 2 no tienen que ver con el 35 :blink:

espero aclaracion de lo que dices...   :smartass:

Saludos :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

C++ BorlFJ

  • Miembro activo
  • **
  • Mensajes: 52
    • Ver Perfil
    • http://www.grafmarc.com.ve/info_lenguajes
Re: Ayuda Con El Codigo
« Respuesta #5 en: Jueves 27 de Mayo de 2004, 22:05 »
0
Increiblemente pero cierto mi compañero y estimadísimo colega THE BLACK BOY

el resultado es cierto es una certeza en vez de falacia
Citar
                         3*3*3=27
                              &&
                          2*2*2=8    por consiguiente 8 + 27 = 35


    ahora la razón que explica este fenómeno se extiende en que no existe ninguna relación de el 2 con el 35. simple y llanamente lo que di fue un resultado que se adaptara a la respuesta que el usuario quería 35 es una de ellas pero qué son casualidades matemáticas que el número no tenga nada que ver con lo expuesto verdad!! por la simple razón de que:

Citar

                                 35 MCM son 7 y 5  :unsure:  :blink:

eso hace ver la incompatibilidad y la adaptabilidad de las matemáticas a un entorno físico...



    bien.... pues así son las cosas... esperando mi colega THE BLACK BOY responderte tu duda quedo de ustedes atentamente


C++ BorlFJ :hola:  :D  :comp:  :whistling:
La Fuente de la vida es querer hacer las cosas como son
JC Vermudez

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Ayuda Con El Codigo
« Respuesta #6 en: Jueves 27 de Mayo de 2004, 22:20 »
0
mmmm....   :think:  


tienes razon sabes...   :think:
aunque no comprendo bien el metodo narcicista :P
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

C++ BorlFJ

  • Miembro activo
  • **
  • Mensajes: 52
    • Ver Perfil
    • http://www.grafmarc.com.ve/info_lenguajes
Re: Ayuda Con El Codigo
« Respuesta #7 en: Jueves 27 de Mayo de 2004, 22:42 »
0
si queres te puedo mandar una cosilla aplicada al método de narcicista

creo que el nombre del teorema es teorema de kirst no estopy muy segurio tengo que revisar. pero decía que 2^3=e^3+c^3

es un teorema lokco que solo el pudo decifrar durando hasta años analizando el problema porque según el no tenía solución. pero eh aquí el mundo de la indformática que logró darle una solución a dicho problema. claro despues que él hiciera su anlalisis jejejeje.  :rolleyes:

dale pues cuidece parcero   :D  :hola:  :whistling:
La Fuente de la vida es querer hacer las cosas como son
JC Vermudez

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Ayuda Con El Codigo
« Respuesta #8 en: Jueves 27 de Mayo de 2004, 22:52 »
0
No ... mejor no.. por ahora no estoy interesado en conocer ese metodo  asi que no te preocupes por eso..

Gracias y Saludos :hola:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

Bgirl

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: Ayuda Con El Codigo
« Respuesta #9 en: Viernes 28 de Mayo de 2004, 03:31 »
0
Gracias... me sirvio de mucha ayuda..

Ya he aprendido que estoy compartiendo con los mejores...

K bueno!!!!
[size=109]Hack To Construct, Never To Destroy!!!![/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayuda Con El Codigo
« Respuesta #10 en: Sábado 29 de Mayo de 2004, 01:12 »
0
Bueno chicos..
y saben esta permitido ayudar pero no hacer la tarea a nadie,
es la policita del foro y espero que la respeten. B)
estare más atento a esta clase de posts.  :comp:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io