上下绘制星星

时间:2019-04-23 11:48:04

标签: 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("*");
    }
}

到目前为止,我已经画好了

*__
_*_
__*

我不知道该如何绘画?

3 个答案:

答案 0 :(得分:2)

解决此类问题的步骤:

  1. 考虑*为1,空格为0。现在我需要此输出:
     10001
     01010
     00100
  1. 第一个1根据行号出现。第0列位于第0列,第1-1行位于第1列
  2. 第二个1出现在(总列数-当前行索引1)
  3. 为上述两个条件打印1,否则为0。
        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();
        }

答案 1 :(得分:0)

  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时

*         *
 *       * 
  *     *  
   *   *   
    * *    
     *   

答案 2 :(得分:0)

您可以尝试以下代码,然后输出所需的内容。

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