为了账号安全,请及时绑定邮箱和手机立即绑定

我怎样才能在java中修复这个星星金字塔

我怎样才能在java中修复这个星星金字塔

慕少森 2022-10-26 17:21:46
我必须通过用户输入打印星星的金字塔,用户输入:多少行,多少列。我盯着一颗星,每次迭代将星数增加 2,将行数减少 1。我无法确定我必须做多少空间。我必须做什么:示例:printStars(4,2) rows = 4 , columns = 2.output :   *       *  ***     *** *****   ************ *******printStars(3,3) rows= 3 , columns =3.output :   *     *     * ***   ***   ******** ***** *****printStars(3,4) rows = 3 , columns =4.output:  *     *     *     * ***   ***   ***   ******** ***** ***** *****编码:private static void printStars(int rows, int columns ) {        int stars = 1;        while (rows > 0) {            int spaces = rows;            for (int i = 1; i <= columns; i++) {                for (int sp = spaces; sp >=1; sp--) {                    System.out.print(" ");                }                for (int st = stars; st >= 1; st--) {                    System.out.print("*");                }            }            System.out.println();            stars += 2;            rows--;        }    }我得到了什么:printStars(3,4)output:   *   *   *   *  ***  ***  ***  *** ***** ***** ***** *****
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

乍一看,您似乎没有考虑打印星星后出现的空间。尝试像这样修改代码:


private static void printStars(int rows, int columns)

{


    int stars = 1;


    while (rows > 0) {


        int spaces = rows;


        for (int i = 1; i <= columns; i++) {


            for (int sp = spaces; sp >= 1; sp--) {

                System.out.print(" ");

            }

            for (int st = stars; st >= 1; st--) {

                System.out.print("*");

            }

            for (int sp = spaces; sp >= 1; sp--) {

                System.out.print(" ");

            }

        }

        System.out.println();

        stars += 2;

        rows--;

    }

}


查看完整回答
反对 回复 2022-10-26
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信