int lastRemaining(int n, int m){ int i = 0; int index = 0; //初始值 剩下一个人 胜利者坐标为0 for (i = 2; i < n + 1; i++) //递推到剩下n个人 胜利者的坐标 { index = (index + m) % i; //=右边的index 为 i-1层对于本层的偏移值 i表示每层的总人数 } return index; }