Josephus problem (counting out)
Minsky Register Machine (25 non-halt states)
Not technically a function, but it's in a computing paradigm which doesn't have functions per se...
This is a slight variation on the main test case of my first MRM interpretation challenge:
Input in registers n
and k
; output in register r
; it is assumed that r=i=t=0
on entry. The first two halt instructions are error cases.
Python, 36
I also used the formula from wikipedia:
J=lambda n,k:n<2or(J(n-1,k)+k-1)%n+1
Examples:
>>> J(7,3)
4
>>> J(77,8)
1
>>> J(123,12)
21
Mathematica, 38 36 bytes
Same Wikipedia formula:
1~f~_=1
n_~f~k_:=Mod[f[n-1,k]+k,n,1]