Рисование звездочек вверх и вниз

#java

#java

Вопрос:

Я хочу получить этот результат, где _ пробелов :

 *___*
_*_*_
__*__
  
     public static void main(String args[]) {

        int level = 2; // quantity line
        int stars = 5; //quantity drawing stars

        for(int i = 1;i <= level ; i  ){
            for(int j =1 ;j <= i; j  ){
                System.out.print(" ");
            }
        System.out.println("*");
    }
}
  

До сих пор я рисовал,

 *__
_*_
__*
  

И я не знаю, как рисовать?

Комментарии:

1. Вы не можете «рисовать». Печать на консоль — это линейный процесс в Java, и поэтому вы должны распечатать *___* перед началом следующей строки. Вернуться к этому позже снова невозможно.

2. как сказал @OHGODSPIDERS, вы должны подумать заранее и подсчитать, сколько звездочек и пробелов вам понадобится, прежде чем (или во время) выводить их на экран

3. Большое спасибо, ребята.

Ответ №1:

Шаги для решения вопросов такого типа:

  1. считайте * как 1, а пробелы как 0. Теперь мне нужен этот вывод :
      10001
     01010
     00100
  
  1. первый 1 отображается в соответствии с номером строки. Строка 0 — 1 в Col 0, строка 1 — 1 в Col 1
  2. Появляется второй 1 (всего столбцов-индекс текущей строки-1)
  3. выведите 1 для вышеуказанных двух условий, в противном случае ноль.
         int rows=3; // quantity line
        int cols=5; //quantity drawing stars
        for(int i=0;i<rows;i  )
        {
            for(int j=0;j<cols;j  )
            {
                int k=cols-i-1;
                if(i==j || j==k)
                    System.out.print("*");
                else System.out.print(" "); 
            }
            System.out.println();
        }
  

Ответ №2:

   int size=10; // Only one parameter is required which is quantity drawing stars
  int length= size%2==0?size/2:size/2 1; // in case of odd one more line need to be print at last on which one Asteric appears.

    for (int i = 0; i < length; i  ) { 
      for (int j = 0; j < size; j  ) {
        if (i == j || i   j == size - 1) { //condition for diagonals
          System.out.print("*");
        } else {
          System.out.print(" ");
        }
      }
      System.out.println();
    }
  

Вывод :

когда размер = 10;

 *        *
 *      * 
  *    *  
   *  *   
    **   
  

когда размер = 11

 *         *
 *       * 
  *     *  
   *   *   
    * *    
     *   
  

Ответ №3:

Вы можете попробовать приведенный ниже код, и результат будет таким, какой вы хотите..

 for(int i=3;i>=1;i--)
{
    for(int j=i;j<3;j  )
       {
          System.out.print(" ");
        }
     for(int j=1;j<=(2*i-1);j  )
        {
            if(j==1 || j==(2*i-1))

            System.out.print("*");

     else
            System.out.print(" ");
          }
            System.out.println("");
 }