2012-10-25 137 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; 
    }