Java para imprimir el número de triángulo con bucle anidado

Que estoy tratando de imprimir la siguiente mediante un bucle anidado en Java:

1 2 3 4 5 6

   1 2 3 4 5

      1 2 3 4

         1 2 3

            1 2

               1

pero es que viene de fuera como los siguientes:

1 2 3 4 5 6

   2 3 4 5 6

      3 4 5 6

         4 5 6

            5 6

               6

Aquí está mi código:

for (int i = 1; i <= 6; i++) {
    for (int j = 1; j < i; j++) 
    {
        System.out.print("  ");
    }
    for (int j = i; j <= 6; j++) 
    {
    System.out.print(j + " ");
    }
    System.out.println();
}

Cualquier ayuda se agradece. Gracias

  • Usted debe utilizar una variable diferente de j de nuevo en su impresión de bucle. Sugerencia: mira lo que establece j demasiado en allí también.
  • El uso de una coherente y lógica de sangría para los bloques de código. La sangría del código está pensado para ayudar a la gente a entender el flujo del programa.

6 Kommentare

  1. 1
    int n = 7;
    
    for (int i = 1; i <= n; i++) {
    
        for (int j = 1; j < i; j++) {
            System.out.println(" ");
        } 
        for (int j = i; j <= 6; j++) {              
           System.out.println(j +" ");
        }
    
    }
  2. 0

    El Programa debe ser –

    for (int i = 1; i <= 6; i++) {
        for (int j = 1; j < i; j++) 
        {
            System.out.print("  ");
        }
        for (int j = 1; j <= (6-i+1); j++) 
        {
        System.out.print(j + " ");
        }
        System.out.println();
    }

    Gracias

    • actualiza tu respuesta, debe 6-i+1 o, simplemente, 7-i
    • Gracias…he cometido este error en la prisa…
    • la actualización es para que yo pueda deshacer su downvote
    • He actualizado mi respuesta.
  3. 0

    Establecer esta condición en el interior de la segunda vuelta.

    for (int j = 1; j <= 7 - i ; j++) 

    Edición :

    Código completo se

    for (int i = 1; i <= 6; i++) {
        for (int j = 1; j < i; j++) 
        {
            System.out.print("  ");
        }
        for (int j = 1; j <= 7 - i ; j++) 
        {
            System.out.print(j + " ");
        }
        System.out.println();
    }       
  4. 0
    for (int i = 2; i <= 7; i++) {
        for (int j = 2; j < i; j++) {
            System.out.print("  ");
        }
        for (int j = i; j <= 7; j++) {
            System.out.print(j-1 + " ");
        }
        System.out.println();
    }
  5. 0

    Esto está dando el mismo resultado … por Favor, compruebe

    public static void main(String[] args)
        { int c=0;
    
            for(int i=6;i>0;i--)
            {
                for(int k=0;k<c;k++)
                  {
                      System.out.print("  ");
                  }
                  for (int j=1;j<=i;j++)
                  {
                   System.out.print(j +" ");
                  }
                  c++;
                  System.out.println(" ");
    
            }  
        }
    
    }
  6. -1

    Intente esto :

    for (int i = 1; i <= 7; i++) {
    for (int j = 1; j < i; j++) 
    {
        System.out.print("  ");
    }
    for (int j = 1; j <= 7-i; j++) 
    {
    System.out.print(j + " ");
    }
    System.out.println();  

    }

    • bucle interno debe ser de 6-i+1
    • Ya he actualizado la respuesta!
    • He de deshacer el downvote..
    • ¿Por qué has cambiado la respuesta, de Nuevo, i<=6 es correcta, la reciente edición está mal, Editar tht antes de que alguien downvote
    • i<=6 le dará una salida como 1 2 3 4 5… y no 1 2 3 4 5 6
    • Ya he probado que, va a trabajar para asegurarse. para modificarlo, no he publicado la respuesta, porque la gente ya publicado, para corregirlo…
    • No soy yo la que te dan downvote ahora
    • reviso y parece que funciona bien.
    • Downvoters especificar la razón!
    • El uso de este browxy.com compilar el código, de modo que usted puede su mal…ya te he dicho..
    • marque esta browxy.com/SubmittedCode/10612
    • No estoy diciendo que usted está equivocado, mi código funciona también como la condición en bucle interno sólo falla para la última iteración y por lo tanto genera la salida correcta.
    • He de deshacer su downvote
    • Gracias por la ayuda a todos. Generalmente en este tipo de cosas es una pequeña o menor cosa que tiene que cambiar y, a veces, cuando se miran fijamente durante demasiado tiempo usted simplemente no puede ver la solución. Esta es una de esas veces.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea