У меня есть код для задачи Иосифа Флавия с использованием рекурсии но я не совсем понимаю ее может кто нибудь мне объяснить
вы можете увидеть проблему Иосифа Флавия на Проблема Иосифа Флавия - Википедия[^] и я уже знаю решение, которое не использует рекурсию, но я действительно хочу знать, как это работает. в этом случае я использую Шаг 2, который означает, что когда он удаляет n(число), то он прыгает n+1, а затем удаляет n+2.
Что я уже пробовал:
<pre> #include <stdio.h> #include <stdlib.h> int winner(int n){ if (n==1) return 1; else return (winner(n-1)+1)%n+1; } int main() { int n; scanf("%d", &n); printf("%d", winner(n)); return 0; }