JoJo:
看起来很简单,写起来还是花了一点功夫的
[阅读: 401] 2010-01-26 13:45:25
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;
}