Итак, я пытаюсь изучить python самостоятельно и делаю головоломки для кодирования. Я наткнулся на одного, который в значительной степени просил, чтобы лучшая позиция стояла в очереди, чтобы выиграть конкурс. Человек, управляющий конкурсом, избавляется от людей, стоящих на нечетных позициях.Рекурсивный метод, возвращающий исходное значение
Так, например, если 1, 2, 3, 4, 5
Было бы избавиться от нечетных позиций, оставляя 2, 4
бы избавиться от остальных нечетных позиций, оставляя 4 в качестве победителя ,
Когда я отладки кода, кажется, работает, но это возвращение [1,2,3,4,5]
вместо ожидаемого [4]
Вот мой код:
def findWinner(contestants):
if (len(contestants) != 1):
remainingContestants = []
for i, contestant in enumerate(contestants, 1):
if (isEven(i)):
remainingContestants.append(contestant)
findWinner(remainingContestants)
return contestants
я не вижу логическую ошибку или есть что-то еще, чего я не вижу?
А, это работает. Спасибо, я не уверен, что вы имеете в виду, мне все равно придется удалить четных соперников после того, как я удалю лишние? Я получаю ожидаемые результаты сейчас, и я не вижу ничего плохого в логике ... – Ryan