首页 > 解决方案 > 在 Java 中使用数组的楼梯打印模式

问题描述

static void UsingArray(int n) {
    String[] arr = new String[n];
    for (int c = 0; c < n; c++) {
        for (int c1 = 0; c < (n - c - 1); c++) {
            arr[c1] = " ";
            System.out.print(arr[c1]);
        }
        for (int c1 = (n - 1); c1 > (n - c - 2); c1--) {
            arr[c1] = "#";
            System.out.println(arr[c1]);
        }
        System.out.println();
    }

}

我试过了,期待这样的输出:

//if n = 4
   #
  ##
 ###
####

但它向我抛出了这个:

//n = 4
   #
#
#
#

我绞尽脑汁调试它,但现在花了我这么多小时(我尝试了所有不同的方法,包括递归、字符串生成器来解决这个打印模式问题,而数组方法是我现在唯一做不到的方法)

我在这里做错了什么?

标签: javaarraysprinting

解决方案


这是因为 .System.out.println(arr[c1]);应该是System.out.print(arr[c1]);因为println()prints 和额外的newline. 你也不需要 arr[c1]你可以使用System.out.print(" ");System.out.print("#");

修改后的代码:-

static void UsingArray(int n) {
    for (int c = 0; c < n; c++) {
        for (int c1 = 0; c1 < (n - c - 1); c1++) {
            System.out.print(" ");
        }
        for (int c1 = c; c1 >= 0; c1--) {
            System.out.print("#");
        }
        System.out.println();
    }

}

输出 :-

   #
  ##
 ###
####

推荐阅读