es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

pirámide invertida de números en Java

Me pidieron que creara un programa en java que muestre una pirámide invertida de números (solo del 1 al 9), con la entrada del usuario de cuántas filas quiere mostrar.

No sé cómo hacer un bucle y limitar los números a 9 y cambiarlos hacia el lado derecho.

Mi código es:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.print("Ingrese altura:\t");
    int height = sc.nextInt();

    for (int row = height; row >= 1; row--) {
        for (int col = 1; col <= row; col++) {
            System.out.print(" ");
        }
        for (int k = 1; k <= row; k++) {
            System.out.print(row + " ");

        }
        System.out.println();
    }
}

La salida es:

Ingrese altura:   12
121212121212121212121212
1111111111111111111111
10101010101010101010
999999999
88888888
7777777
666666
55555
4444
333
22
1

La salida debería ser:

Ingrese altura:  12
    111111111111
     22222222222
      3333333333
       444444444
        55555555
         6666666
          777777
           88888
            9999
             111
              22
               3

O también:

Ingrese altura:  20
11111111111111111111
 2222222222222222222
  333333333333333333
   44444444444444444
    5555555555555555
     666666666666666
      77777777777777
       8888888888888
        999999999999
         11111111111
          2222222222
           333333333
            44444444
             5555555
              666666
               77777
                8888
                 999
                  11
                   2
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para limitar los números a 1-9 y mostrar la pirámide invertida en el lado derecho, puedes modificar el código existente de la siguiente manera:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    
        System.out.print("Ingresa la altura:\t");
        int height = sc.nextInt();
    
        for (int row = 1; row <= height; row++) {
            for (int spaces = 1; spaces < row; spaces++) {
                System.out.print(" ");
            }
            for (int col = 1; col <= height - row + 1; col++) {
                System.out.print((col % 9) + 1);
            }
            System.out.println();
        }
    }
    

    El bucle más interno ahora utiliza (col % 9) + 1 para limitar los números a 1-9, y el primer bucle imprime los espacios necesarios para alinear la pirámide invertida en el lado derecho.

    Por ejemplo, si el usuario ingresa 12, la salida será:

    Ingresa la altura:  12
              1
             234
            56789
           1234567
          89123456
         789123456
        7891234561
       23456789123
      456789123456
     7891234567891
    23456789123456
    56789123456789
    

Comments are closed.