25 lines
587 B
Lua
25 lines
587 B
Lua
function josephus(n, k, m)
|
|
local positions={}
|
|
for i=1,n do
|
|
table.insert(positions, i-1)
|
|
end
|
|
local i,j=1,1
|
|
local s='Execution order: '
|
|
while #positions>m do
|
|
if j==k then
|
|
s=s .. positions[i] .. ', '
|
|
table.remove(positions, i)
|
|
i=i-1
|
|
end
|
|
i=i+1
|
|
j=j+1
|
|
if i>#positions then i=1 end
|
|
if j>k then j=1 end
|
|
end
|
|
print(s:sub(1,#s-2) .. '.')
|
|
local s='Survivors: '
|
|
for _,v in pairs(positions) do s=s .. v .. ', ' end
|
|
print(s:sub(1,#s-2) .. '.')
|
|
end
|
|
josephus(41,3, 1)
|