Мне нужно пройти список.Каждый элемент списка является максимальным прыжком.Поэтому, если моя стартовая позиция 5, я могу прыгнуть максимум на 5 позиций в списке.Но если 5-й элемент списка равен 0, то это неверный переход, поэтому я должен уменьшить переход на 1. Я хочу сделать это рекурсивно, но он будет повторять одно и то же число каждый раз.
def traverse(lst,pos,out):
out.append(pos)
try:
while lst[pos] + pos == 0:
pos = pos - 1
pos += lst[pos]
traverse(lst,pos,out)
except IndexError:
print(out[:-1] + ['out'])
c2 = [3,5,1,2,5,1,4]
traverse(c2,c2[0],out)
output: [3, 5,'out']
c3 = [3,5,1,0,5,1,4] #So i changed the 3th value to 0
traverse(c3,c3[0],out)
output:
3,
3,
3,
3,
...]
До максимальной рекурсивной ошибки.Почему мой пост не уменьшает значение?