Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

sábado, 15 de junio de 2013

Triángulo de Pascal

Código


package triangulopascal;

public class TrianguloPascal {
    public static void main(String[] args) {
        int nfilas = 10;
        int[] a = new int[1];
        for (int i = 1; i <= nfilas; i++) {
            int[] x = new int[i];
            for (int j = 0; j < i; j++) {
                if (j == 0 || j == (i - 1)) {
                    x[j] = 1;
                } else {
                    x[j] = a[j] + a[j - 1];
                }
                System.out.print(x[j] + " ");
            }
            a = x;
            System.out.println();
        }
    }
}




Resultado:


run:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1 
BUILD SUCCESSFUL (total time: 0 seconds)


13 comentarios:

  1. Muchas gracias por el aporte, me sirvió de mucho.

    ResponderEliminar
  2. Gracias me evitaste un chorro de humo que me hubiese saido del morro jejejej por sierto, el triangulito este tambien lo representan en forma de piramide, yo modifique un tantito el codigo para que se muestre así, aqui lo dejo por si a alguien mas le sirve!!
    package triangulopascal;

    /**
    *
    *
    */
    public class TrianguloPascal {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic herepublic static void main(String[] args) {
    int nfilas = 10;
    int[] a = new int[1];
    for (int i = 1; i <= nfilas; i++)
    {
    for(int k=i-5;k<=10;k++)
    {
    System.out.print( " ");
    }
    int[] x = new int[i];
    for (int j = 0; j < i; j++)
    {
    if (j == 0 || j == (i - 1))
    {
    x[j] = 1;
    } else
    {
    x[j] = a[j] + a[j - 1];
    }
    if(x[j]<10)
    {
    System.out.print(x[j] + " ");
    }
    else
    {
    if (x[j]<100)
    {
    System.out.print(x[j] + " ");
    }
    else
    {
    System.out.print(x[j] + " ");
    }

    }
    }
    a = x;
    System.out.println();
    }

    }

    }

    Resultado:
    run:
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    1 5 10 10 5 1
    1 6 15 20 15 6 1
    1 7 21 35 35 21 7 1
    1 8 28 56 70 56 28 8 1
    1 9 36 84 126 126 84 36 9 1
    BUILD SUCCESSFUL (total time: 0 seconds)

    ResponderEliminar
    Respuestas
    1. no se nota el formato porque blogger le quitó los espacios pero si funciona!!!

      Eliminar
  3. hola si digamos que solamente se quiera imprimir 1 nivel ejemplo solo nivel 3 : 1 2 1 que el usuario indique el nivel que quiere y no todo el triaungulo plis ayuda

    ResponderEliminar
    Respuestas
    1. Se pone la salida dentro un "If":
      if (nfilas == 3) System.out.print(x[j] + " ");

      Eliminar
    2. puedes inicializar un contador y un Scanner para que te inserte el usuario la longitud de tu arreglo

      Eliminar
  4. hola, lo podrían poner para hacerlo en un bloc de notas? me ayudarían mucho

    ResponderEliminar
  5. una pregunta.. se puede realizar el programa, que el triangulo de pascal se imprima en una tabla Jframe ? pero realizado el proceso desde una clase (sin vectores ni matrices)
    si es que se puede .. me pueden ayudar por favor.. gracias..

    ResponderEliminar
  6. Podrian hacerlo en un diagramade flujo.

    ResponderEliminar
  7. Scanner LeerDatosPorTeclado = new Scanner(System.in);
    int opcion;
    do {
    int nFilas = 0;
    int arreglo[] = new int[1];
    System.out.println("*** TRIANGULO DE PASCAL ***");
    System.out.print("Ingrese numero de filas: ");
    nFilas = LeerDatosPorTeclado.nextInt();
    System.out.println("\nEl triangulo de pascal es: \n");
    for (int i = 1; i <= nFilas; i++) {
    int pascal[] = new int[i];
    for (int j = nFilas; j > i; j--) {
    System.out.print(" ");
    }
    for (int k = 0; k < i; k++) {
    if (k == 0 || k == (i - 1)) {
    pascal[k] = 1;
    } else {
    pascal[k] = arreglo[k] + arreglo[k - 1];
    }
    System.out.print(pascal[k] + " ");
    }
    arreglo = pascal;
    System.out.println();
    }
    System.out.println("\n\nDecea continuar?");
    System.out.println("1. continuar.");
    System.out.println("2. Salir. ");
    System.out.print("\nIngrese una opcion: ");
    opcion = LeerDatosPorTeclado.nextInt();
    System.out.println("\n\n");
    } while (opcion != 2);

    ResponderEliminar

Con la tecnología de Blogger.