zadach251.BAS

{* Задача251 *}

REM basic

' Согласно легенде, однажды, разбойники пленили n человек, среди которых
' были математик Иосиф Флавий и его друг. Разбойники приказали людям стать
' в круг и сказали, что будут убивать каждого k-го пока не останется
' всего 2 человека. Флавий провел расчет, и они с другом заняли такие места,
' что остались живы. Составьте программу, решающую задачу Иосифа Флавия для
' любых n>2 и k>1. Например, для n=4 и k=3 нужно занять 1-ю и 4-ю позицию.


CLS
INPUT "Введите число пленников (n) и номер очередного казненного (k) ", n, k

Dim V(n)
      
For i = 1 To n
        V(i) = i
Next i

For i = 1 To n - 2              
   tmp = 0
       Do          
        First = First + 1
           If First > n Then First = 1
           If V(First)  0 Then tmp = tmp + 1
           If tmp = k Then V(First) = 0:  Exit Do
       Loop
Next i
      
For i = 1 To n
        If V(i)  0 Then
                x = x + 1
                If x = 1 Then p1 = i Else p2 = i
        End If
Next i
        PRINT "Нужно занять места"; p1; "и"; p2
End