[英]How do I make it so that the right side of my hollow equilateral triangle prints "\" properly? I have trouble with the spacing
我被困在第三个 for 循环中,无法理解如何制作等边三角形的另一侧(右侧)。
public static void printTriangle(int x) {
for (int i = 1; i <= x; i++) {
for (int j = i; j < x; j++) {
System.out.print(" ");
}
System.out.print("/");
for (int k = i; k > x * 2; k++) {
System.out.print(" ");
}
System.out.print("\\");
System.out.println();
}
for (int a = 1; a <= x; a++) {
System.out.print("--");
}
}
你for
循环
for (int k = i; k > x * 2; k++) {
System.out.print(" ");
}
从i
开始,这是您的行索引,然后转到x * 2
,这是您的行数的两倍。 这意味着,在第一行中,您将使用最大的间距。 你想要的恰恰相反; 在第一行中,您的边缘不需要任何间距,并且在下一行中应该越来越多:
for (int k = 0; k < (i - 1) * 2; k++) {
System.out.print(" ");
}
应该得到你想要的。 Output:
/\
/ \
/ \
/ \
/ \
----------
每行三角形的 char 宽度为 i * 2,因此不包括 / 和 \ 字符,您必须打印 i*2 -2 个空格。 代替
for (int k = i; k > x * 2; k++) {
和
for (int k = 2; k < i*2; k++) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.