2016-08-01 10 views
0

Ich möchte eine Pyramide von Zahlen beginnend mit 0 und endend mit 9 drucken, wenn sie gleich 9 ist, sollte das Programm wieder von 0 bis 9 beginnen und so weiter ... HierEine Pyramide von Zahlen beginnend mit 0 endend mit 9

ist, was ich habe versucht:

public static void main(String[] args) { 

    for (int i = 0; i < 10; i += 2) { 
     for (int j = 0; j < 10 - i; j += 2) { 
      System.out.print(" "); 
     } 
     for (int k = 0; k <= i; k++) { 
      System.out.print(" " + k); 
     } 
     System.out.println(); 
    } 
}   

die

gedruckt
 0 
    0 1 2 
    0 1 2 3 4 
    0 1 2 3 4 5 6 
    0 1 2 3 4 5 6 7 8 

aber ich diese benötigen ..

  0 
     1 2 3 
     4 5 6 7 8 
    9 0 1 2 3 4 5... 
+1

Und was ist das, was Sie bekommen? – Jens

+0

http://i.stack.imgur.com/wprNW.png ich bekomme das .. –

+0

Hinweis: Warum drucken Sie immer k von 0? – venki421

Antwort

1

Sie drucken k die für jede Iteration von i von 0 beginnt das Drucken 0 1 2 3.. jedes Mal. Erstellen Sie stattdessen eine lokale Variable, initialisiert auf 0 und drucken Sie sie aus und erhöhen Sie sie jedes Mal um eins. In Ihrem Fall möchten Sie den Zähler von 0 starten, wenn counter Wert größer als 9 ist, können Sie einen Scheck dafür hinzufügen, indem Sie if(counter > 9) counter = 0; einschließen. Hinzugefügt ein Code unten:

int counter = 0; 
for (int i = 0; i < 10; i += 2) { 
for (int j = 0; j < 20 - i; j++) { 
    System.out.print(" "); 
} 
for (int k = 0; k <= i; k++) { 
    System.out.print(" " + counter++); 
    if(counter > 9) counter = 0; 
} 

System.out.println(); 
} 

Ausgabe

   0 
      1 2 3 
     4 5 6 7 8 
     9 0 1 2 3 4 5 
    6 7 8 9 0 1 2 3 4 

DEMO

+0

Warum 'j <20'? Das würde nur die Pyramide einrücken und wäre möglicherweise nicht erwünscht. Anstelle des if, um den Zähler zu erhöhen, können Sie auch 'System.out.print (" "+ (counter ++% 10));'. – Thomas

+0

Gute Arbeit (NICHT). Jetzt kann er einfach Ihren Code kopieren und die Lernerfahrung beim Debuggen seines eigenen Codes verpassen. –

+0

@Thomas ja 'j <20' ist optional Ich habe es für zusätzlichen Abstand hinzugefügt. Ich postete den Code, der mir zuerst einfiel, aber danke für die andere Lösung. – silentprogrammer

0

Sie können eine Variable haben und sie jedes Mal erhöhen.

public static void main(String[] args) { 
    int count=0; 
    for (int i = 0; i < 10; i += 2) { 
     for (int j = 0; j < 10 - i; j += 2) { 
      System.out.print(" "); 
     } 
     for (int k = 0; k <= i; k++) { 
      System.out.print(" " + count++); 
      if(count>9) 
       count=count%10; 
     } 

     System.out.println(); 
    } 
} 
Verwandte Themen