22 lines
456 B
Text
22 lines
456 B
Text
' Josephus problem
|
|
|
|
BEGIN DEF
|
|
pointer word JosephusPtr~
|
|
SUB CalcJosephus(N%, K%, M%, JosephusPtr~)
|
|
|
|
BEGIN CODE
|
|
N% = 41
|
|
K% = 3
|
|
M% = 0
|
|
CALL CalcJosephus(N%, K%, M%, VARPTR(Josephus%))
|
|
PRINT "N = " + N% + ", K = " + K% + ", Final survivor = " + Josephus% + "\n"
|
|
END
|
|
|
|
SUB CalcJosephus(N%, K%, M%, JosephusPtr~)
|
|
[JosephusPtr~] = M%
|
|
MPl1% = M% + 1
|
|
FOR A% = Mpl1% TO N%
|
|
[JosephusPtr~] = [JosephusPtr~] + K%
|
|
[JosephusPtr~] = [JosephusPtr~] MOD A%
|
|
NEXT
|
|
END SUB
|