28
约瑟夫斯问题(算出)
挑战 编写一个函数,该函数将两个正整数n和k作为参数,并在计算出每个第k人后返回n中剩余的最后一个人的人数。 这是一个代码挑战,因此以最短的代码为准。 问题 n个人(从1到n编号)围成一个圈,每个k-数被计数,直到剩下一个人为止(请参阅相应的Wikipedia文章)。确定最后一位的号码。 例如,对于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 …