На цьому веб-сайті є запитання, яке схоже на це питання, але я додав поворот.
У вас є три входи, кількість людей у колі n , k -ма людина, що рахується на кожному кроці, і q -та людина, яка вижила. Люди в колі пронумеровані від 1 до n .
Наприклад, у колі з 20 осіб 20-та особа, яка вижила, - це перша людина, яку вижили, 19-а особа, яка вижила, - друга людина, яку вилучили тощо. Зазвичай проблема Йосифа полягає у визначенні останньої вилученої особи, яку тут називають першим уцілілим.
Напишіть найкоротшу програму або функцію, яка за допомогою цих трьох входів повертає число q- ї людини, щоб вижити.
Якщо якісь проблеми з ясністю, будь ласка, повідомте мене про це.
Деякі приклади:
>>> josephus(20, 3, 9)
4
>>> josephus(4, 3, 1)
1
>>> josephus(100, 9, 12)
46
Редагувати: Припустимо, що всі вхідні дані є дійсними. Тобто ніхто не буде запитувати 0 або будь-які негативні цифри, і ніхто не буде просити 20-го виживця в колі 5 чоловік (тобто 1 ≤ q ≤ n)
Редагувати: Я прийму відповідь опівночі UTC + 7 на початку 2 грудня.
q=1це точно так само, як пов'язане питання Йосифа, так?
