RosettaCodeData/Task/Josephus-problem/Batch-File/josephus-problem.bat

32 lines
563 B
Batchfile

@echo off
setlocal enabledelayedexpansion
set "prison=41" %== Number of prisoners ==%
set "step=3" %== The step... ==%
set "survive=1" %== Number of survivors ==%
call :josephus
set "prison=41"
set "step=3"
set "survive=3"
call :josephus
pause
exit /b 0
%== The Procedure ==%
:josephus
set "surv_list="
for /l %%S in (!survive!,-1,1) do (
set /a "m = %%S - 1"
for /l %%X in (%%S,1,!prison!) do (
set /a "m = (m + step) %% %%X"
)
if defined surv_list (
set "surv_list=!surv_list! !m!"
) else (
set "surv_list=!m!"
)
)
echo !surv_list!
goto :EOF