2012-10-25 171 views
0

我正在試圖讓我把它做成倒三角形。 嘗試了很多次,但我不知道該怎麼做。在java中製作一個倒三角形

我知道的代碼是:

public static void drawPyramide(int lines, char symbol, boolean startDown) { 
    //TRIANGLE 

    if(startDown) { 
       //The triangle up side down should be here. 
      } 

    else { 
     int c = 1; 
     for (int i = 0; i < lines; i++) { 
      for (int j = i; j < lines; j++) { 
       System.out.print(" "); 
      } 
      for (int k = 1; k <= c; k++) { 
       if (k%2==0) System.out.print(" "); 

       else System.out.print(symbol); 
      } 

     System.out.print("\n"); 
     c += 2; 
     } 
    } 

} 

任何建議如何我可以「翻轉」這個三角形?謝謝。

+0

運行後這個輸出是什麼 –

+2

如果你能得到三角形打印正確的一面,只需簡單地反轉循環。 – Max

+0

我得到一個三角知道。但我已經嘗試過了,但我該如何扭轉循環? – user1770961

回答

1

要翻轉三角形,你只需要改變迭代的方向。而不是去從i = 0i < lines,你需要從i = lines-1下井i >= 0

你還需要將c改變你要多少空格和符號開始。

可能看起來像這樣:

int c = 2*lines; 
for (int i = lines-1; i>=0; i--) 
{ 
    for (int j = i; j < lines; j++) 
    { 
     System.out.print(" "); 
    } 
    for (int k = 1; k <= c; k++) 
    { 
     if (k % 2 == 0) 
     { 
      System.out.print(" "); 
     } 
     else 
     { 
      System.out.print(symbol); 
     } 
    } 

    System.out.print("\n"); 
    c -= 2; 
} 
0

逆向第一循環條件即從行的數目就減少了。同時相應地調整你c並使其從高到低例如如下:

int c = 2*lines-1; 
    for (int i = lines; i > 0; i--) { 
     for (int j = i; j < lines; j++) { 
      System.out.print(" "); 
     } 
     for (int k = 1; k <= c; k++) { 
      if (k%2==0) System.out.print(" "); 

      else System.out.print(symbol); 
     } 

     System.out.print("\n"); 
     c -= 2; 
    }