У меня есть проблема, которую я не могу решить, наверное, потому что я не совсем понимаю рекурсию ... но у меня есть эта функция, которую мне нужно реализовать.
def elements(num, multiplier, add, limiter) -> List[int]:
num - это число, которое вы умножаете на множитель, а затем добавляете число add ... и вы добавляете число num, пока оно не станет больше ограничителя.
например
(5, 3, 1, 20) will give [5, 16]
(5, 3, 1, 5) will give []
(4, -2, -2, 74) will give [4, -10, 18, -38]
Я не могу использовать какие-либо циклы, поэтому нет для цикла или во время цикла ... или все, что содержит цикл в нем (сумма, мин, макс .... и т. Д.)
Я написал это, и я знаю, это глупо, но я не совсем понимаю, как работает рекурсия, я думаю ... именно поэтому я пришел сюда, потому что лучше всего учусь из кода
def first_elements(first, multiplier, addend, limit):
result = []
if first > limit:
return []
multiplied,_,_,_ = first_elements(first * multiplier + addend, multiplier, addend, limit)
if multiplied > limit:
return []
result.append(first)
result.append(multiplied)