Итак, у меня есть метод ниже:
public static int JosSurvivor(int n, int k)
{
if (n == 1)
return 1;
else
return (JosSurvivor(n - 1, k) + k - 1) % n + 1; //problem on this line
}
Мне интересно, почему это работает:
return (JosSurvivor(n - 1, k) + k - 1) % n + 1;
А этого не происходит:
return (JosSurvivor(n - 1, k) + k) % n;