Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: RGT en 28 Marzo 2015, 22:18 pm



Título: Ayuda con Ternas Pitagóricas en C
Publicado por: RGT en 28 Marzo 2015, 22:18 pm
Hola, soy nuevo en el foro y quiero enviarles un saludo a todos ustedes.


Código:
//Declaración de variable
    int liN, liContador1, liContador2, liContador3, liContadora = 0;

    //Entrada de datos
    printf("Ingrese un valor: ");
    scanf("%d", &liN);

    //Procesamiento
    printf("\n");

    for (liContador1 = 1; liContador1 <= liN; liContador1++)
    {
        for (liContador2 = 1; liContador2 <= liN; liContador2++)
        {
            for (liContador3 = 1; liContador3 <= liN; liContador3++)
            {
                if (liContador1 * liContador1 + liContador2 * liContador2 == liContador3 * liContador3)
                    printf("(%d, %d, %d)\t", liContador1, liContador2, liContador3);
            }
        }
    }

    printf("\n");

(http://oi60.tinypic.com/sv313d.jpg)

Tengo este código hecho y me muestra muchos resultados, algunos que no aparecen, por ejemplo en wikipedia y algunos sitios web que enseñan este método.

Tengo algo mal o me falta hacer algo?.

Espero que me ayuden y saludos a todos!.


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: engel lex en 29 Marzo 2015, 00:55 am
como no especificas... supongo que lo dices por las ternas

(6,8,10), (8,6,10), etc

pero si 6,8,10 es una terna por que no aparece? simple... 6,8,10 es lo mismo que 3,4,5 y solo toman las formas simplificadas ya que por la teoria... lee la parte de ternas primitivas y no primitivas...


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: RGT en 29 Marzo 2015, 05:43 am
Hola, y qué debo de hacer para que salgan las correctas?.


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: engel lex en 29 Marzo 2015, 11:48 am
las que tienes son correctas... supongo que lo que quieres dcir, es que tienes que hacer solo para que salgan solo las ternas primitivas... mira lo que dice la teoría sobre la primitiva y aplica lo que la hace primitiva...

por otro lado para quitar las ternas repetidas como (4,3,5) que claramente es (3,4,5) no permitas que "b" sea nunca menor que "a"


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: RGT en 29 Marzo 2015, 17:14 pm
Hola, intento hacerlo y no me sale :(


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: engel lex en 29 Marzo 2015, 17:26 pm
Que intentas hacer y no te sale?
Muestra el código a ver que error tienes


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: RGT en 29 Marzo 2015, 18:23 pm
    for (liContador1 = 1; liContador1 <= liN; liContador1++)
    {
        for (liContador2 = liContador1 ; liContador2 <= liN; liContador2++)
        {
            for (liContador3 = 1; liContador3 <= liN; liContador3++)
            {
                TernasPitagoras(liContador1, liContador2, liContador3);
            }
        }
    }

Hize un cambio (marcado en negrita) y todavia me sale algunos repetidos.


Título: Re: Ayuda con Ternas Pitagóricas en C
Publicado por: engel lex en 29 Marzo 2015, 19:28 pm
no veo repeticiones, con el cambio de codigo ya no te quedan inversiones

nada de (3,4,5) (4,3,5)

por cierto... liContador3 tambien debería ser inicialmente = liContador1, ya que nunca la suma de los cuadrados nunca será menor que ninguno de los valores

ahora solo te falta imprimir solo las primitivas y terminaste... y por lo que veo no estás intentando lo que ya te he dicho

Citar
mira lo que dice la teoría sobre la primitiva y aplica lo que la hace primitiva...

la teoria está en wikipedia