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
#
#
#
#
我竭尽全力去调试它,但是现在花了我很多时间(我尝试了所有不同的方法,包括递归,stringbuilder来解决此打印模式问题,而数组方法是我目前唯一无法做到的方法)
我在这里做什么错了?
答案 0 :(得分:0)
这是因为System.out.println(arr[c1]);
的缘故,应该是System.out.print(arr[c1]);
,因为println()
会打印出多余的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();
}
}
输出:-
#
##
###
####