早教吧 育儿知识 作业答案 考试题库 百科 知识分享

猴子选大王C#题目,要求有注释一群猴子都有编号,编号分别是1,2,3 ...n ,这群猴子(n个)按照1到n的顺序顺时针围坐一圈,从编号为1的猴子开始顺时针报数,每数到m(m

题目详情
猴子选大王C#题目,要求有注释
一群猴子都有编号,编号分别是1,2,3 ...n ,这群猴子(n个)按照1到n的顺序顺时针围坐一圈,从编号为1的猴子开始顺时针报数,每数到m(m
▼优质解答
答案和解析
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];
}