2016-08-09 53 views
-2
1 
2 3 
4 5 6 

Ich muss das Dreieck mit einzelnen for-Schleife drucken.Drucken Dreieck in Java mit einzelnen for-Schleife

Ich habe versucht, zwei for-Schleifen und ich tat es erfolgreich, aber ich muss es lösen single for loop.

+0

WHy müssen Sie dies in einzelnen Schleife tun? Selbst wenn Sie dasselbe mit einer Schleife oder mehreren Schleifen machen, bleibt die Komplexität gleich !! –

Antwort

0

Versuchen Sie dies.

public class Pyramid7Floyds { 
    public static void main(String[] args) { 


      int nextNumber = 1; 
      for (int i = 1; i <= 10; i++) { 
        for (int j = 1; j <= i; j++) { 
         System.out.print(nextNumber<10 ? (" " + nextNumber++) : (" " + nextNumber++)); //2spaces in single digit & 1 space in double digit. 
         //System.out.format("%3d",nextNumber++); //You may use this line for formatting as a replacement of above line. (comment above line before using this) 
        } 
        System.out.println(); 
      } 


    } 
} 
0
public class HelloWorld{ 

    public static void main(String []args){ 
     int j=1; 
     for(int i=1;i<=6;i++){ 
      System.out.print(i+" "); 
      if (i==j){ 
       System.out.print('\n'); 
       j=2*j+1; 
      } 
     } 
    } 
} 
1

Der Trick besteht darin, dass die letzte Nummer der aktuellen Zeile die Summe der anderen

und die Nummer der Zeile vorherigen Reihe letzte Zahl ist Wörter: lastNum = prevLastNumber + rowNum

int row = 1; 
int last = 0; 
for (int i = 1; i < 37; i++) { 
    if (i < (row + last)) { 
     System.out.print(i + " "); 
    } else { 
     System.out.print(i + "\n"); 
     row++; 
     last = i; 
    } 
} 

Und der Ausgang ist die folgende:

1 
2 3 
4 5 6 
7 8 9 10 
11 12 13 14 15 
16 17 18 19 20 21 
22 23 24 25 26 27 28 
29 30 31 32 33 34 35 36