2014-09-19 4 views
-2

Im java student, и у меня довольно тяжелое время, пытаясь использовать для циклов, чтобы создать перевернутый треугольник.Использование для циклов для создания перевернутого треугольника

Это то, что мой код выглядит сейчас, прямолинейный треугольник. Как я могу сделать еще один такой, как он, но вверх ногами?

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 –

+0

@ JanØyvind вы можете отредактировать свой вопрос и поставить то, что вы ищете (ожидаемый) –

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

Все, что вам нужно сделать, это изменить свой 3-й цикл

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

В коде, вы печатаете 1 звезда, 3 звезды , 5 звезд и т. Д. ... (i звезды на самом деле)

Чтобы сделать это upsi де-вниз, начните дж при максимальном значении и уменьшаем так печати п - звезды I

 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()); 
} 

Однако вы, вероятно, должны узнать кое-что о петлях и алгоритма.

Смежные вопросы