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

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

Я попытался использовать два цикла, и я сделал это успешно, но я должен решить его, используя одиночный цикл.

+0

, почему вы должны сделать это в одном цикле? Даже если вы делаете то же самое с одним циклом или несколькими циклами, сложность остается прежней! –

ответ

0

Попробуйте это.

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

Хитрость заключается в том, что последний номер из текущей строки это сумма предыдущей строки последнего номера и номер строки

В других слова: 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; 
    } 
} 

И выход заключается в следующем:

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 
Смежные вопросы