Что нужно сделать
N человек, пронумерованных числами от 1 до N, стоят в кругу. Они начинают играть в считалку на выбывание, где каждый K-й по счёту человек выбывает из круга, после чего счёт продолжается со следующего за ним человека.
На вход подаётся количество человек N и номер K. Напишите программу, которая выводит число от 1 до N — это номер человека, который останется в кругу последним.
Пример:
Кол-во человек: 5
Какое число в считалке? 7
Значит, выбывает каждый 7-й человек
Текущий круг людей: [1, 2, 3, 4, 5]
Начало счёта с номера 1
Выбывает человек под номером 2
Текущий круг людей: [1, 3, 4, 5]
Начало счёта с номера 3
Выбывает человек под номером 5
Текущий круг людей: [1, 3, 4]
Начало счёта с номера 1
Выбывает человек под номером 1
Текущий круг людей: [3, 4]
Начало счёта с номера 3
Выбывает человек под номером 3
Остался человек под номером 4
Что оценивается
- Результат вычислений корректен.
- Input содержит корректные приглашения для ввода.
- Формат вывода соответствует примеру.
- Переменные и функции имеют значащие имена, не только a, b, c, d
humans = int(input('Количество человек: '))
humans_list = list(range(1, humans + 1))
num = int(input('Какое число в считалке: '))
print(f'Значит выбывает каждый {num}-й человек.')
start = 0
while len(humans_list) != 1:
print(f'\nТекущий круг людей: {humans_list}')
index = start % len(humans_list)
print(f'Начало счета с {humans_list[index]} человека.')
start = (index + num - 1) % len(humans_list)
print(f'Выбывает человек под номером {humans_list[start]}.')
humans_list.remove(humans_list[start])
print('\nОстался человек под номером ', *humans_list)