Wyzwanie
Napisz funkcję, która przyjmuje dwie dodatnie liczby całkowite n i k jako argumenty i zwraca liczbę ostatnich osób pozostających poza n po odliczeniu każdego k tej osoby.
To wyzwanie dla golfa, więc wygrywa najkrótszy kod.
Problem
n osób (ponumerowanych od 1 do n ) stoi w kręgu i każdy k- ty jest odliczany, aż pozostanie jedna osoba (patrz odpowiedni artykuł na Wikipedii ). Określ liczbę tej ostatniej osoby.
Np. Dla k = 3 dwie osoby zostaną pominięte, a trzecia zostanie odliczona. Tj. Dla n = 7 liczby będą odliczane w kolejności 3 6 2 7 5 1 (szczegółowo 1 2 3 4 5 6 7 1 2 4 5 7 1 4 5 1 4 1 4 ), a zatem odpowiedź wynosi 4 .
Przykłady
J(7,1) = 7 // people are counted out in order 1 2 3 4 5 6 [7]
J(7,2) = 7 // people are counted out in order 2 4 6 1 5 3 [7]
J(7,3) = 4 // see above
J(7,11) = 1
J(77,8) = 1
J(123,12) = 21