______________________________________________________________________________________________________________________
Solución:
La salida de este programa da casos repetidos, en los cuales los catetos intercambian su valor. A cambio de eso el programa es totalmente a base de fuerza bruta y bastante sencillo. En este ejercicio, debibo a la gran cantidad de lineas (774) que arroja el ejecutable, tal vez le convenga Redireccionar la salida
El siguiente código debe guardarse con el nombre UsaDeitel_5_21.java
public class UsaDeitel_5_21
{ // Abre clase
public static void main(String args[])
{ // Abre main
//Se crea un objeto de tipo Deitel_5_21
Deitel_5_21 miObjeto = new Deitel_5_21();
// Se llama a metodo Pitagoras
miObjeto.Pitagoras();
} // Cierra main
} // Cierra clase UsaDeitel El siguiente código debe guardarse con el nombre Deitel_5_21.java
public class Deitel_5_21
{ // Abre clase Deitel_5_21
public int Tamano = 500;
public void Pitagoras()
{ // Abre metodo Pitagoras
System.out.print("\nEste programa prueba e imprime todas las ternas");
System.out.printf(" pitagoricas para numeros no mayores que %d ", Tamano);
System.out.print(" mediante la fuerza bruta.\n");
for ( int i = 1; i <= Tamano; i++ )
for ( int j = 1; j <= Tamano; j++ )
for ( int k = 1; k <= Tamano; k++ )
{ // Abre for
if ( i*i == j*j + k*k )
System.out.printf("%3d\t%3d\t%3d\n", i, j, k);
} // Cierra for
} // Cierra metodo Pitagoras
} // Cierra clase Deitel_5_21
Un análisis muy interesante sobre las tripletas pitagóricas viene en la introducción del Ebook "Teoría de números" de Carlos Ivorra Castillo (lo puedes descargar desde su sitio). Creo que te resultará muy interesante revisarla y ver si se puede programar algo al respecto.
ResponderEliminarBuena tarde :)
Buen ejemplo de la Fuerza Bruta!
ResponderEliminarAsí es. Es un bonito ejemplo. Muchos saludos.
ResponderEliminarMuy buenos ejemplos y ayudas...Muchas gracias por subirlos.
ResponderEliminarQué bueno que te están sirviendo. ¡Gracias!
EliminarGracias :)
ResponderEliminarporfa tendrás el capitulo 8 para adelante :/
ResponderEliminarFaça um programa que imprima todas as triplas Pitagóricas
ResponderEliminar
formadas
por números entre e 1000.
Mi código me arroja 772 tripletas. ¿Cual puede ser la diferencia?
ResponderEliminarimport java.util.Scanner;
public class Pitagoras {
public static void main (String args[])
{
int i,j,k,contador=0;
for (i = 1 ; i <= 500; i++)
{
for(j = 1 ; j <= 500; j++)
{
for(k = 1; k <= 500; k++)
{
if ( (Math.pow(k, 2)) + (Math.pow(j, 2)) == (int)(Math.pow(i,2)) )
{
System.out.printf("%d %d %d\n",i,j,k);
contador++;
}
}
}
}
System.out.println(contador);
}
}