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
Решение:
piople = int(input('Кол-во человек: '))
dropped = int(input('Какое число в считалке? '))
print('Значит, выбывает каждый', dropped, 'человек.')
piople_list = list(range(1, piople + 1))
out = 0
for _ in range(piople - 1):
print('\nТекущий круг людей', piople_list)
start_count = out % len(piople_list)
out = (start_count + dropped - 1) % len(piople_list)
print('Начало счёта с номера', piople_list[start_count])
print('Выбывает человек под номером', piople_list[out])
piople_list.remove(piople_list[out])
print('\nОстался человек под номером', *piople_list)
38200login-checkЗадача 8. Считалка
