В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
varyavernerr
varyavernerr
06.10.2021 09:51 •  Информатика

Привет с задачей (язык 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 человека, вылетает ошибка, она в комментах. Как её исправить?

Показать ответ
Ответ:
akimovilya20
akimovilya20
17.09.2021 06:13

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)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота