Мне нужен этот ромбовидный узор в R - PullRequest
0 голосов
/ 19 ноября 2018
                                   *
                                  * *
                                 * * *
                                * * * *
                               * * * * *
                                * * * *
                                 * * *
                                  * *
                                   *

Это мой код, но он выдает ошибку:

Ошибка в "" * (строки - i - 1): не числовой аргумент для бинарного оператора Звонки: пирамида -> печать Исполнение остановлено

#R version 3
pyramid<-function(rows){for (i in rows){print(" "*(rows-i-1)+"*"*(i+1))}
for(j in (rows-1|0|-1)){print(" "*(rows-j)+"*"*(j))}}
rows<-5
pyramid(rows)

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете найти множество (псевдокод) примеров в сети. Это должен был быть ваш первый подход к решению вашей проблемы. SO не является бесплатной службой написания кода, и вы получите гораздо более положительный ответ, если продемонстрируете искреннюю попытку решить проблему самостоятельно. Кроме этого, здесь есть "грубая" R реализация кода, которую я нашел здесь . Код может и, вероятно, должен быть «R-ified», и я призываю вас потратить некоторое время на это. Я обещаю, что вы многому научитесь. Например, должна быть возможность заменить большинство (все?) Явных циклов for, используя векторизованные функции.

diamond <- function(max) {

    # Upper triangle
    space <- max - 1
    for (i in 0:(max - 1)) {
        for (j in 0:space) cat(" ")
        for (j in 0:i) cat("* ")
        cat("\n")
        space <- space - 1
    }

    # Lower triangle
    space = 1;
    for (i in (max - 1):1) {
        for (j in 0:space) cat(" ")
        for (j in 0:(i - 1)) cat("* ")
        cat("\n")
        space <- space + 1
    }
}
diamond(5)
#    *
#   * *
#  * * *
# * * * *
#* * * * *
# * * * *
#  * * *
#   * *
#    *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...