我应该完成方法

public static void printStairs(int numMen) {

}


哪个打印

                  o  ******
                 /|\ *    *
                 / \ *    *
             o  ******    *
            /|\ *         *
            / \ *         *
        o  ******         *
       /|\ *              *
       / \ *              *
      *********************


我有

   public static void printStairs(int numMen) {
  for (int i = 0; i < numMen; i++) {
     String space = "";
     String space2="";
     for (int j = numMen - i; j > 1; j--) {
        space += "     ";
     }
     for (int j = 2; j <=numMen-i; j++) {
        space2 += "     ";
     }

     System.out.println(space + "  o  ******"+space2+"*");
     System.out.println(space + " /|\\ *    "+space2+"*");
     System.out.println(space + " / \\ *    "+space2+"*");


  }
   for(int i=0; i<=5*numMen+6; i++){

   System.out.print("*");
   }

      }


这使

                  o  ******       *
                 /|\ *          *
                 / \ *          *
             o  ******   *
            /|\ *      *
            / \ *      *
        o  *******
       /|\ *    *
       / \ *    *
      ***********


而不是我想要的图像。

我不明白为什么这行不通,因为我只是颠倒了楼梯左侧空间的代码,并将其连接到楼梯右侧。

有谁知道如何将垂直线合并到代码中并创建想要的图像?

最佳答案

尝试这个:

    public static void  printMan(int numMen) {

        for (int i = 0; i < numMen; i++) {
            String space ="" ,space2 ="";
            for(int j = numMen-i; j>1; j--) {
                    space += "       ";
            }
            for(int k = 0; k<i ; k++) {
                space2 += "       ";
             }

             System.out.println(space +" o  *****" + space2 + "*");
             System.out.println(space + "/|\\ *    "+ space2 + "*");
             System.out.println(space + "/ \\ *    "+ space2 + "*");
        }

        for (int i = 0; i < (numMen *10)-((numMen-1) *3); i++) {
            System.out.print("*");
        }
    }
    }

10-07 11:58