Java: печать треугольников и пробелов путем вызова методов - PullRequest
0 голосов
/ 06 марта 2020

Я застрял в этом вопросе:

Печать звездочек и пробелов

Определите метод с именем printSpaces (int number), который создает количество пробелов, указанных числом. Метод не печатает разрыв строки.

Вам также придется либо скопировать метод printStars из предыдущего ответа, либо переопределить его в этом шаблоне упражнения. Печать правостороннего треугольника

Создайте метод с именем printTriangle (int size), который использует printSpaces и printStars для печати правильного треугольника. Таким образом, вызов метода printTriangle (4) должен вывести следующее: Пример вывода

>    *
>   **
>  ***
> ****

Я не могу заставить работать с пробелами первый вопрос, и я полностью потерялся в создании рекурсивного треугольник. Я вижу, что многие ответы используются для циклов, однако класс, в котором я работаю, хочет, чтобы они выполнялись как методы. Я не могу понять, как правильно перевести это. Я получил треугольник с другой стороны:

public class Test072 {

    public static void main(String[] args) {
        printTriangle(4);
    }


    public static void printTriangle(int size) {
        int numSize = 0;
        while (numSize < size) {
            printStars(numSize);
            numSize++;
        }
    }

    public static void printStars(int number) {
        int numStar = 0;
        while (numStar <= number) {
            System.out.print("*");
            numStar++;
        }
        System.out.println();
    }
}

Как только мы начали добавлять пробелы, я полностью растерялся и понятия не имею, как и как назвать, что и когда. Я не знаю, как правильно вызвать метод space в метод треугольника, как они просят.

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Это должно сделать работу.

public static void printTriangle(int size) {
    int numSize = 0;
    while (numSize < size) {
        printSpaces(size - numSize - 1);
        printStars(numSize);
        numSize++;
    }
}
public static void printSpaces(int number) {
    int numSpaces = 0;
    while (numSpaces < number) {
        System.out.print(" ");
        numSpaces++;
    }
}
    public static void printStars(int number) {
        int numStar = 0;
        while (numStar <= number) {
            System.out.print("*");
            numStar++;
        }
        System.out.println();
    }
}
0 голосов
/ 17 марта 2020
//printStars is printing "number" numbers of stars on one line with a line break

public static void printStars(int number) {
    for(int i=1;i<=number;i++){
        System.out.print("*");
    }
    System.out.println();
}

//printSpaces print "number" number of spaces on one line
public static void printSpaces(int number) {

    for(int i=1;i<=number;i++){
        System.out.print(" ");
    }
}

public static void printTriangle(int size) {

    for(int i=1;i<=size;i++){
        printSpaces(size-i);
        printStars(i);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...