10个学生编号1-10围坐一圈,1-3报数,报3的退出,求最后剩下的是谁?要C#语言
不要复制粘贴的,不要抄来的,不要链接,不要别的语言的。请看清楚。
定义人员
public class bsren
{
public string name { set; get; }
public bool isThree { set; get; }
public bsren()
{ }
public bsren(string _name)
{
name = _name;
isThree = false;
}
}
初始化人员
List<bsren> list = new List<bsren>();
list.Add(new bsren("测试人01"));
list.Add(new bsren("测试人02"));
list.Add(new bsren("测试人03"));
list.Add(new bsren("测试人04"));
list.Add(new bsren("测试人05"));
list.Add(new bsren("测试人06"));
list.Add(new bsren("测试人07"));
list.Add(new bsren("测试人08"));
list.Add(new bsren("测试人09"));
list.Add(new bsren("测试人10"));
//设定开始报数
int m = 1;
while (list.Count > 2)
{
for (int i = 0; i < list.Count; i++)
{
if (m % 3 == 0)
{
list[i].isThree = true;
}
if (m == 3)
{
m = 1;
}
else
{
m++;
}
}
for (int j = list.Count - 1; j > -1; j--)
{
if (list[j].isThree)
{
list.RemoveAt(j);
}
}
}
string msg = "最后剩下的人:";
foreach (bsren obj in list)
{
msg = msg + obj.name + "\r\n";
}
MessageBox.Show(msg);
List<string> LStr = new List<string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
while (LStr.Count >= 3)
{
LStr.AddRange(new List<string> { LStr[0], LStr[1] });
LStr.RemoveRange(0,3);
}
return LStr[0];