Мне нужно определить функцию rec_range (n), которая принимает натуральное число и возвращает TUPLE чисел до числа n.Python Recursion: Range
т.е. rec_range возвращает (5) возвращает (0,1,2,3,4) rec_range (1) (0,)
Это то, что я придумал до сих пор.
def rec_range(n):
"""takes a natural number n and returns a tuple of numbers starting with 0 and ending before n
Natural Number -> Tuple of Numbers"""
if n == 0:
return 0
else:
return (rec_range(n-1),)
Это работает для rec_range (1).
*** Ограничения: должны быть определены рекурсивно, не может использовать списки, петли или использовать функцию существующий диапазон()
После того, как вы это сделаете, попробуйте 'rec_range (1500)', и вы обнаружите, почему рекурсия не является магическим решением для всех проблем ;-) – Kevin
@Kevin: Это просто представляет проблему с незнакомыми языками оптимизация хвостового вызова и ограничение того, насколько велик объем их стека. – ArtOfWarfare
@ArtOfWarfare эта рекурсия не является даже хвостовой рекурсией ... – HuStmpHrrr