mkleelee
花朵
共回答了20个问题采纳率:100% 举报
number就是题目中的m,返回值就是猴子的序号,代码中固定为6只猴子,这个可以自己扩展
private IList Monkeys;
private int ElectKing(int number)
{
Monkeys = new List(new int[] { 1,2,3,4,5,6 });
int nIndex = 0;
int nNumber = 0;
while (Monkeys.Count > 1)
{
//如果上一次报数的猴子是最后一只的话
if (nIndex > Monkeys.Count - 1)
{
//从第一只开始
nIndex = 0;
}
//报数
nNumber++;
//移除数到某一个数的猴子
if (nNumber == number)
{
nNumber = 0;
Monkeys.RemoveAt(nIndex);
continue;
}
//下一个猴子准备
nIndex++;
}
return Monkeys[0];
}
1年前
9