Ver Mensaje Individual
  #11 (permalink)  
Antiguo 29/03/2015, 01:50
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: Ternas Pitagóricas, no logro hacerlo

Cita:
Iniciado por ecfisa Ver Mensaje
Hola RGT.

En realidad no es tán complejo, para evitar la repetición de ternas basta con que la segunda variable de control se inicie con el último valor alcanzado por la primera. Y para el número de ternas se puede usar un contador.

A modo de ejemplo, aunque el número de ternas resulta inconexo con el máximo numero (seguramente una invalidará la otra), sería algo como:
Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.   // nro de ternas, máximo nro, contador de ternas
  5.   int ternas = 5, num = 1000,  cont = 1;
  6.   int i, j, k;
  7.  
  8.   for(i = 1; i <= num && cont <= ternas; i++)
  9.     for(j = i; j <= num && cont <= ternas; j++)
  10.       for(k = 1; k <= num && cont <= ternas; k++)
  11.         if (i*i + j*j == k*k) {
  12.           printf("%4d: (%3d, %3d, %3d) : %4d + %4d = %4d\n",
  13.             cont, i, j, k, i*i, j*j, k*k);
  14.           cont++;
  15.         }
  16.  
  17.   getchar();
  18.   return 0;
  19. }

Saludos.
Hola, gracias por tratar de ayudarme hermano.

Sigue apareciendo valores innecesarios. Según Wikipedia:
Cita:
Las 16 primeras ternas, con c ≤ 100 son:

( 3 , 4 , 5 ) ( 5, 12, 1) ( 6 , 8 , 10) ( 7, 24, 25)
( 8, 15, 17) ( 9, 40, 41) (11, 60, 61) (12, 35, 37)
(13, 84, 85) (16, 63, 65) (20, 21, 29) (28, 45, 53)
(33, 56, 65) (36, 77, 85) (39, 80, 89) (48, 55, 73)
Código:
Código:
    for (liContador1 = 1; liContador1 <= liN; liContador1++)
    {
        for (liContador2 = liContador1; liContador2 <= liN; liContador2++)
        {
            for (liContador3 = 1; liContador3 <= liN; liContador3++)
            {
                TernasPitagoras(liContador1, liContador2, liContador3);
            }
        }
    }



Aparecen algunos valores que en Wikipedia no estan, qué hago?, estoy perdido en esto.