Привет с задачей (язык Python): N человек, пронумерованных числами от 1 до N, стоят в кругу. Они начинают играть в считалку на выбывание, где каждый K-й по счёту человек выбывает из круга, после чего счёт продолжается со следующего за ним человека. На вход подаётся количество человек N и номер K. Напишите программу, которая выводит число от 1 до N — это номер человека, который останется в кругу последним.
members = []
n = int(input('Сколько всего человек? '))
number = int(input('Какое число в считалке? '))
print('Значит, выбывает каждый', number, 'человек.\n')
out = 0
members = list(range(1, n + 1))
while len(members) > 1:
``print('Текущий круг людей:', members)
``start_count = out % len(members)
``out = (start_count + number - 1) % len(members)
``print('Начало счёта с номера', members[start_count])
``print('Выбывает человек под номером', members[out])
``print()
``members.remove(out + 1)
print('Остался человек под номером', members)
Проблема, когда остаются 2 человека, вылетает ошибка, она в комментах. Как её исправить?
num = int(input('Кол-во человек: '))
number = int(input('Какое число в считалке? '))
print('Значит, выбывает каждый', number, 'человек.')
mens_list = list(range(1, num + 1))
out = 0
for _ in range(num - 1):
print('Текущий круг людей', mens_list)
start_count = out % len(mens_list)
out = (start_count + number - 1) % len(mens_list)
print('Начало счёта с номера', mens_list[start_count])
print('Выбывает человек под номером', mens_list[out])
mens_list.remove(mens_list[out])
print()
print('Остался человек под номером', mens_list)