public int[] Jose(int start, int alter, int total)
{
//i每轮参与人数;j需要调整位置的下标;k输出了几轮
int i, j, k = 0;
//结果索引数组
int[] result = new int[total];
//索引数组
int[] temp = new int[total];
//初始化索引数组
for (i = 0; i < total; i++)
{
temp[i] = i;
}
//循环索引数组出数
for (i = total - 1; i >= 1; i--)
{
start = (start + alter - 1) % (i + 1);
result[k] = temp[start];
k++;
//移动数组元素 使其连续
for (j = start; j < i; j++)
temp[j] = temp[j + 1];
}
//最后剩下的
result[k] = temp[i];
return result;
}