问题描述
- 10个学生编号1-10围坐一圈,1-3报数,报3的退出,求最后剩下的是谁?要C#语言
-
10个学生编号1-10围坐一圈,1-3报数,报3的退出,求最后剩下的是谁?要C#语言不要复制粘贴的,不要抄来的,不要链接,不要别的语言的。请看清楚。
解决方案
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
解决方案二:
定义人员
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 + "
";
}
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];
时间: 2024-12-20 22:42:15