Соревнование
Напишите функцию, которая принимает два положительных целых числа n и k в качестве аргументов и возвращает номер последнего человека, оставшегося из n после отсчета каждого k-го человека.
Это задача игры в гольф, поэтому выигрывает самый короткий код.
Проблема
n человек (от 1 до n ) стоят по кругу, и каждый k-й отсчитывается до тех пор, пока не останется один человек (см. соответствующую статью в Википедии ). Определите номер этого последнего человека.
Например, при k = 3 два человека будут пропущены, а третий будет отсчитан. Т.е. при n = 7 числа будут отсчитываться в порядке 3 6 2 7 5 1 (подробно 1 2 3 4 5 6 7 1 2 4 5 7 1 4 5 1 4 1 4 ) и, таким образом, ответ равен 4 .
Примеры
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