JoJo ·
·
阅读: 491
public static int CalcMonkeyKing(int total, int seek)
{
List<bool> monkeys = new List<bool>(new bool[total]);
int cNumbers = total;
int cSeek = 0;
int idx = 0;
while (cNumbers > 1)
{
if (cSeek == (seek - 1))
{
monkeys[idx] = true;
cSeek = 0;
cNumbers--;
}
else
cSeek++;
int nextIdx = monkeys.GetRange(idx + 1, monkeys.Count - idx - 1).FindIndex(m => m == false);
idx = nextIdx < 0 ? monkeys.FindIndex(m => m == false) : nextIdx + idx + 1;
}
return monkeys.FindIndex(m => m == false) + 1;
}