#r #function #vector
Вопрос:
Я должен создать mult5
функцию, которая, учитывая положительное целое число, возвращает вектор с числами, кратными 5, которые существуют меньше или равны этому числу. Например, для числа 17 mult5 (17)
следует вернуть вектор (0, 5, 10, 15). Я не могу использовать какой-либо тип петли или сапфира / лапли.
Я думаю, что могу сделать это с помощью функции seq, но я не знаю, как это сделать. Вот что я пробовал:
mult5 lt;- function(numero){ modulo = numero %% 5 == 0 seq = seq(from = 0, to = numero, by = modulo) }
Но я думаю, что я не могу поместить переменные в функцию последовательности и выдать мне ошибку. Может ли кто-нибудь объяснить или сказать мне, что я мог бы сделать?
Испытание:
is.list(mult5(24)) == FALSE all(mult5(24) == c(0, 5, 10, 15, 20)) check.not.command("for", mult5) check.not.command("while", mult5)
Я не могу использовать в течение/времени.
Ошибка msg:
Error in seq.default(from = 0, to = numero, by = modulo) : invalid '(to - from)/by'
Комментарии:
1. Нет необходимости в модуле.
seq(0, numero, by = 5)
2. Каков результат и сообщение об ошибке?
3. ваша ошибка заключается в том, что
numero %% 5 == 0
возвращаетTRUE/FALSE
недопустимое значение дляby
аргумента вseq
Ответ №1:
seq
Функция уже имеет необходимое поведение, если numero
оно не кратно 5, поэтому вы можете упростить свой код до:
mult5 lt;- function(numero){ seq(from = 0, to = numero, by = 5) }
Ответ №2:
Это мой пример:
def check(number: int): lst = list(range(0, number, 5)) print(lst)
Отредактировано с помощью предложения @diggusbickus
Комментарии:
1. список(диапазон(0,число,5))
2. @diggusbickus Ты прав, более питонский способ