C# 小朋友抢凳子

假设有6个小朋友,编号为1,2,3,4,5,6。 从1数到3,然后把第3个小朋友去除,再从1数到3,把第6个小朋友去除,再从1数到3, 把第4个小朋友去除,求剩下的最后一个小朋友。

       static int Func(int[] array, int count)
{
if (array == null || array.Length== 0 || count <1)
{
throw new Exception("array or count can't be empty or less than 1");
}

int a = 0;
int b = 1;
int c = array.Length;
int sign = -1;
bool[] bArray = new bool[array.Length];
for (int i = 0; i < bArray.Length; i++)
{
bArray[i] = true;
}

while (c>0)
{
if (a == 6)
{
a = 0;
}
if (bArray[a] == true && b == count)
{
sign = a;
bArray[a] = false;
b = 1;
c--;
}
if (bArray[a] == true && b <count)
{
b++;
}
a++;
}
return array[sign];
}



原文地址:https://www.cnblogs.com/Ligeance/p/2391565.html