Как создать функцию, которая, учитывая положительное целое число, возвращает вектор с числами, кратными 5, которые существуют?

#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 Ты прав, более питонский способ