RosettaCodeData/Task/Josephus-problem/Craft-Basic/josephus-problem.basic

29 lines
384 B
Plaintext

'using 1 to n
define prisoners = 0, step = 0, killcount = 0, survivor = 0
define fn (josephus) as ( survivor + step ) % killcount
do
input "Prisoners", prisoners
input "Step", step
gosub executioner
loop
sub executioner
let killcount = 1
do
let killcount = killcount + 1
let survivor = (josephus)
loop killcount < prisoners
print "survivor = ", survivor
return