TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #198 3.39K
🖥 Задача Единственный выживший

Это вариант классической задачи Иосифа Флавия. В кругу стоят n человек, пронумерованных числами от 1 до n. Начинается расчет, при котором каждый k-й по счету человек выбывает из круга, после чего счет продолжается со следующего за ним человека. Напишите программу, определяющую номер человека, который останется в кругу последним.

Входные данные:

Числа n и k на отдельных строках.

#Пример ввода
9 3

Выходные данные:

Номер последнего оставшегося человека.

#Пример вывода
1

Решение
Способ 1:


n, k = int(input()), int(input())
last = 0
for i in range(1, n + 1):
last = (last + k) % i
print(last + 1)


Способ 2 – рекурсия:

def lastSurvivor(n, k):
if n == 1:
return 1
elif n > 1:
return (1 + (lastSurvivor(n - 1, k) + k - 1) % n)

n, k = int(input()), int(input())
print(lastSurvivor(n, k))


@python_job_interview
  • 👍 16
  • 🔥 2
  • ❤ 1
More from @python_job_interview
  1. Oct 2, 2026photo post
  2. Oct 2, 2026🌟 SGLang научил чат-модели отвечать вероятностями Команда открытого движка инференса SGLa…
  3. Oct 1, 2026🖥 Примеры кода на Python 2026: лучшие практики, разбор и задачи с решениями Python пример…
  4. Sep 30, 2026🔥 Почему Python-библиотеки всё чаще пишут критичные части на Rust Например, Pydantic v2 и…
  5. Sep 29, 2026🌟 OpenScience: персональный учёный с режимом автономных экспериментов Стартап Synthetic S…
  6. Sep 28, 2026Миниатюра из фотографии за 4 строки Python 🐍 from PIL import Image with Image.open("my_im…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →