Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int josephN(int n, int k){
- if(n==1) return n;
- return (josephN(n - 1, k) + k - 1)%n + 1;
- }
- int josephKlogN(int n, int k){
- if (n == 1) return 0;
- if (k == 1) return n-1;
- if (k > n) return (josephKlogN(n-1, k) + k) % n;
- int cnt = n / k;
- int res = josephKlogN(n - cnt, k);
- res -= n % k;
- if (res < 0) res += n;
- else res += (res / (k - 1) );
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement