用星号创建右对齐三角形

时间:2018-02-20 01:29:03

标签: java

我正在尝试使用星号打印右对齐的三角形。到目前为止,我有一个程序,询问用户的形状,然后是一个大小,然后打印出这些尺寸的三角形。到目前为止,我有一个左对齐三角形的程序。我该怎么做才能使它正确对齐?到目前为止,这是我的代码。

if (shape.equals("triangle")) {

    System.out.print("size?");
    int size = sc.nextInt();
    for (int i = 0; i <= size; i = i + 1) {
        for (int j = 0; j < i; j = j+ 1) {
            System.out.print("*");
        }
        System.out.println();
    }
    ...
}

2 个答案:

答案 0 :(得分:2)

尝试在左侧添加一些填充:

System.out.print("size?");
int size = sc.nextInt();
// input 5
for (int i = 0; i <= size; i = i + 1) {
    for (int j = 0; j < size-i; ++j) {
        System.out.print(" ");
    }
    for (int j = 0; j < i; ++j) {
        System.out.print("*");
    }
    System.out.println();
}

    *
   **
  ***
 ****
*****

Demo

答案 1 :(得分:0)

试试这个,这将添加左填充,结果,你会得到一个右对齐的三角形:

int star = 1, space = size - 1;
    while (n > 0) {
        for (int i = 0; i < space; i++) {
            System.out.print(" ");
        }
        for (int i = 0; i < star; i++) {
            System.out.print("#");
        }
        star = star + 1;
        space = space - 1;
        --size;
        System.out.println("");
    }