2017-01-18 2 views
-1

мне нужна помощь с этиммне нужна помощь в Java коде пирамиды

1****** 
12***** 
123**** 
1234*** 
12345** 
123456* 
1234567 

Использование 3 для петель это будет завершено. я попробовал этот

public class Pattren { 
    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     int i,j,k; 
     for (i = 1; i <= 7; i++) 
     { 
      for (j = 1; j <= i; ++j) 
      { 

        System.out.print((j)+("\n")); 

       for (k = 7 - i; k >= 1; k--) 
       { 
        System.out.print("* "); 

       } 
      } 
     }   
    } 
} 

Но есть некоторая логическая проблема с ним. Мне нужно улучшить этот код. Я получил этот выход.

1 
* * * * * * 1 
* * * * * 2 
* * * * * 1 
* * * * 2 
* * * * 3 
* * * * 1 
* * * 2 
* * * 3 
* * * 4 
* * * 1 
* * 2 
* * 3 
* * 4 
* * 5 
* * 1 
* 2 
* 3 
* 4 
* 5 
* 6 
* 1 
2 
3 
4 
5 
6 
7 
+0

«Но есть некоторый журнал с ней. Мне нужно улучшить код »- можете ли вы быть более конкретным? – alfasin

+1

Это работает для меня каждый раз:' System.out.print («1 ****** \ n12 ***** \ n123 **** \ n1234 *** \ n12345 ** \ n123456 * \ n1234567 ");' – shmosel

ответ

0

Простейшее версия будет

int i,j; 
    for (i = 1; i <= 7; i++) 
    { 
     for (j = 1; j <= 7; ++j) 
     { 
      if (j <= i) { 
       System.out.print(j); 
      } 
      else { 
       System.out.print("*"); 
      } 
     } 
     System.out.println(); 
    } 

Выход

1****** 
12***** 
123**** 
1234*** 
12345** 
123456* 
1234567 
+0

Вы можете вызывать 'System.out.println()' без аргумента. – shmosel

+0

Спасибо. Это дает мне точный вывод. –

+0

@shmosel Спасибо –

0

Ниже решение с гораздо меньшим количеством строк кода:

public static void main(String[] args) { 
    StringBuilder sb = new StringBuilder(); 
    String s = ""; 
    for(int i=1; i<=7; i++){ 
     s += i; 
     sb.append(String.format("%-7s", s).replace(" ", "*")).append("\n"); 
    } 
    System.out.println(sb.toString()); 
} 
Смежные вопросы