2014-09-19 313 views
-2

我是一名java學生,而且我有相當困難的時候,試圖使用循環創建一個顛倒的三角形。使用for循環創建一個倒三角形

這是我的代碼現在看起來像一個直線前進的三角形。我怎麼能讓另一個人喜歡它,但倒過來?

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

回答

3

難道是這樣嗎?

只要改變

for (int i=1; i<20; i += 2) 

for (int i = 19; i >0; i -= 2) 

代碼。

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

輸出地說:

******************* 
***************** 
*************** 
************* 
*********** 
********* 
******* 
***** 
*** 
* 
+0

很抱歉,這並不能幫助我。爲了讓編隊實際向下移動不成問題,增加空格,這就是問題所在。我不能讓它看起來像這樣,我需要一個完整的,顛倒的,三角形:s – 2014-09-19 09:55:24

+0

@JanØyvind你可以編輯你的問題,並把你在找什麼(預計出) – 2014-09-19 09:56:39

0
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

所有你需要做的是改變你的第三個for循環

for (int j=0; j<i; j++) 
    { 
     System.out.print("*"); 
    } 

在代碼中,你打印1星級,3星級,5星等......(我實際上是星星)

爲了讓它upsi德下來,開始在最大值的j和遞減,所以你打印N - 我恆星

 for (int j = 20 - i; j > 0; j--) 
     { 
      System.out.print("*"); 
     } 
0
public static void main(String[] args) { 

    StringBuffer sb = new StringBuffer(); 

    for (int i = 1; i < 20; i += 2) { 
     for (int k = 10; k < (0 - i/2); k++) { 
      sb.append(" "); 
     } 
     for (int j = 0; j < i; j++) { 
      sb.append("*"); 
     } 
     sb.append("\n"); 
    } 

    System.out.println(sb.reverse()); 
} 

但是你可能應該學習一些關於循環和算法。