繁体   English   中英

如何使我的空心等边三角形的右侧正确打印“\”? 我的间距有问题

[英]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 ,这是您的行数的两倍。 这意味着,在第一行中,您将使用最大的间距。 你想要的恰恰相反; 在第一行中,您的边缘不需要任何间距,并且在下一行中应该越来越多:

  • 第一行:间距为 0
  • 第二行:2的间距
  • 第三行:4的间距
  • ...等等所以:
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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM