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];
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步