Famous Josephus's problem solution.
Recursive solution:
Iterative solution:
when m=2, then the following will be useful. Found it here.
Recursive solution:
int josephus(int n, int m)
{
if (n == 1)
return 0;
return (josephus (n-1, m) + m) % n;
}
Iterative solution:
ans=0;
for(i=2;i<=n;i++)
{
ans=(ans+m)%i;
}
when m=2, then the following will be useful. Found it here.
int f(int n)
{
if(n == 1) return 1;
return (f((n-(n&1))>>1)<<1) + ((n&1)?1:-1);
}
No comments:
Post a Comment