void josephus ( int n, int m) { int i, j, kill = m - 1; int reset = 0; int circle[n], killOrder[n]; for (i = 0; i < n; i++) circle[i] = i; for ( i = 0; i < n; i++) { killOrder[i] = kill; circle[kill] = -1; for ( j = 0; j < m; j++) { kill++; while (circle[kill] == -1) kill++; if (kill > n - 1) { kill = 0; } while (circle[kill] == -1) kill++; } } for (i = 0; i < n; i++) printf("%d\t%d \n", i, killOrder[i]); }