首页 > 其他 > 详细

有趣的C#数组问题:n只猴子选大王......

时间:2014-03-01 03:05:28      阅读:548      评论:0      收藏:0      [点我收藏+]
/// <summary> 
/// 直接调用这个方法,传入2个参数
/// </summary>
/// <param name="numberPerson">猴子的个数</param>
/// <param name="unluckyNumber">那个不幸的数字,也就是报到那个数字就要出局的</param>
/// <returns></returns>
private static int Play(int numberPerson, int unluckyNumber)
{
int i = 0; // 循环变量,作为数组的索引
int currentNumber = 0; // 报数计数
int numberRemain = numberPerson; // 剩下的人数
int numberWin = 0; // 赢的人的编号

// 声明数组,存放每个人的状态
bool[] personState = new bool[numberPerson];

// 游戏开始,每个人的状态都为true
for (i = 0; i < personState.Length; i++)
{
personState[i] = true;
}

// 开始游戏
while (numberRemain > 1)
{
for (i = 0; i < personState.Length; i++)
{
if (personState[i] == true) // 状态为true,报数
{
currentNumber++; // 报出的数字
if (currentNumber % unluckyNumber == 0)
{
personState[i] = false; // 报到幸运数字的倍数人退出
numberRemain--; // 退出的人数累加1
}
}
}
}
// 找到唯一一个没有退出的人,状态为true
for (i = 0; i < personState.Length; i++)
{
if (personState[i])
{
numberWin = i + 1;
break;
}
}

return numberWin;

}

有趣的C#数组问题:n只猴子选大王......,布布扣,bubuko.com

有趣的C#数组问题:n只猴子选大王......

原文:http://www.cnblogs.com/Silly728/p/3573642.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!