2 回答
TA贡献1847条经验 获得超7个赞
使用以下代码(只是对你的代码做了一些修改,没有检查其效率):
public static void main(String[] args) {
for (int i = 7; i >= 1; i--) {
for (int k = 7; k >= i; k--) {
System.out.print(" "); // Print 7-i number of spaces before start of each line
}
System.out.print(i); // Print i
for (int j = 1; j <= i*2; j++) {
System.out.print(" "); // Print i*2 number of spaces after printing i
}
System.out.println(i); // Print i
}
}
TA贡献1848条经验 获得超10个赞
而不是嵌套循环(并向后迭代),我会用一种方法来分解空白的生成,以重复给String定的次数。喜欢,
private static String repeat(String s, int n) {
return Stream.generate(() -> s).limit(n).collect(Collectors.joining());
}
那么我更喜欢一个StringBuilder和一个单一的电话println喜欢
public static void main(String[] args) {
int start = 6;
for (int i = 0; i < start; i++) {
int v = start - i;
StringBuilder sb = new StringBuilder();
sb.append(repeat(" ", i)).append(v);
sb.append(repeat(" ", 2 * v)).append(v);
System.out.println(sb);
}
}
添加回答
举报