Le défi
Écrivez une fonction qui prend deux entiers positifs n et k comme arguments et retourne le numéro de la dernière personne restante sur n après avoir compté chaque k -ième personne.
C'est un défi de code-golf, donc le code le plus court l'emporte.
Le problème
n personnes (numérotées de 1 à n ) sont debout dans un cercle et chaque k - ième est compté jusqu'à ce qu'une seule personne est disponible (voir le correspondant article wikipedia ). Déterminez le nombre de cette dernière personne.
Par exemple, pour k = 3, deux personnes seront ignorées et la troisième sera décomptée. C'est-à-dire que pour n = 7, les nombres seront comptés dans l'ordre 3 6 2 7 5 1 (en détail 1 2 3 4 5 6 7 1 2 4 5 7 1 4 5 1 4 1 4 ) et donc la réponse est 4 .
Exemples
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