Joseph's ring is an application of mathematics: N people (represented by numbers 1, 2, 3... n) are known to be sitting around a round table. The number of people numbered K starts to report, and the person counting m is listed; the next person reporting the number from 1, and the person counting m is listed again; repeat this rule, until all the people around the Round Table are listed.
For example:
N = 9, k = 1, m = 5
[Answer]
The order of the outsourcers is 5, 1, 7, 4, 3, 6, 9, 2, 8.
Using system; using system. collections. generic; using system. text; namespace Jose {class program {public int [] JOSE (INT total, int start, int num) {int I; Int J; int K; int [] count; // record the order of the queue int [] People; // record the player number J = 0; k = 0; Count = new int [total]; people = new int [Total + 1]; for (I = 0; I <total; I ++) // number {People [I] = I ;} for (I = total; I> 1; I --) {start = (start + num-1) % I; If (START = 0) Start = I; // find the number of players in the queue [k ++] = people [start]; // record the number of players in the queue for (j = start + 1; j <= I; j ++) people [J-1] = people [J]; // players leaving, adjust remaining players} count [k] = people [1]; return count ;} static void main (string [] ARGs) {program game = new program (); int [] result = game. jose (9, 0, 5); foreach (int o in result) {console. writeline ("" + O + players ");} console. readkey ();}}}