29/03/2015, 01:50
|
Usuario no validado | | Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años, 1 mes Puntos: 5 | |
Respuesta: Ternas Pitagóricas, no logro hacerlo Cita:
Iniciado por ecfisa 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#include <stdio.h> int main() { // nro de ternas, máximo nro, contador de ternas int ternas = 5, num = 1000, cont = 1; int i, j, k; for(i = 1; i <= num && cont <= ternas; i++) for(j = i; j <= num && cont <= ternas; j++) for(k = 1; k <= num && cont <= ternas; k++) if (i*i + j*j == k*k) { printf("%4d: (%3d, %3d, %3d) : %4d + %4d = %4d\n", cont, i, j, k, i*i, j*j, k*k); cont++; } return 0; }
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. |