Die Herausforderung
Schreiben Sie eine Funktion, die zwei positive ganze Zahlen n und k als Argumente verwendet und die Nummer der letzten von n verbleibenden Person nach dem Auszählen jeder k- ten Person zurückgibt .
Dies ist eine Code-Golf-Herausforderung, also gewinnt der kürzeste Code.
Das Problem
n Personen (nummeriert von 1 bis n ) stehen in einem Kreis und jedes k- te wird ausgezählt, bis eine einzelne Person übrig bleibt (siehe den entsprechenden Wikipedia-Artikel ). Bestimmen Sie die Nummer dieser letzten Person.
ZB für k = 3 werden zwei Personen übersprungen und die dritte Person wird ausgezählt. Dh für n = 7 werden die Zahlen in der Reihenfolge 3 6 2 7 5 1 (im Detail 1 2 3 4 5 6 7 1 2 4 5 7 1 4 5 1 4 1 4 1 4 ) ausgezählt und die Antwort lautet somit 4 .
Beispiele
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