一个题目! 比如有一个数组, a[100],每隔两个删除一个, 到数组末尾再从头顺序再来,问最后一个被删除的是谁? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected void Page_Load(object sender, EventArgs e) { List<int> list = new List<int>(); for (int i = 1; i <= 100; i++) { list.Add(i); } Delete(list); Response.Write(list[2].ToString()); }private void Delete(List<int> list) { int index = 0; int count = list.Count; for (int i = 1; i <= count / 3; i++) { list.Remove(list[i * 3 - 1 - index]); index++; } if (list.Count <= 3) { return; } Delete(list); return; }输出95思路是,不停删除被3整除的(index为2,5,8……的),删到数组只剩下3个时,第3个就是最后被删的你的题目没说明第一个删不删,如果第一个删,把循环的i=1改成i=0 int[] arr = new int[100]; for (int i = 0; i < 100; i++) { arr[i] = i; } List<int> temList = arr.ToList(); int lenght = 100; for (int i = 0; i < lenght; i++) { temList.RemoveAt(i); lenght = lenght - 1; i = i + 1; } int[] getArr = temList.ToArray(); 这就是隔两个删除 static void Main(string[] args) { List<int> list = new List<int>(); for (int i = 0; i < 100; i++) { list.Add(i); } GetLastList(list); Console.WriteLine(list[0].ToString()); Console.ReadLine(); } private static void GetLastList(List<int> list) { for (int i = 0; i < list.Count; i = i + 2) { list.RemoveAt(i); } if (list.Count != 1) { GetLastList(list); } } c#获取ini文件的数据,路径是对的,但是数据为空 C# 在调用Matlab的算法是出现异常 DataGridView手动设置列后,无法显示水平滚动条 C#调用VC编写的COM组件中的全局函数,怎么把C#自定义的结构体作为函数的参数传递? 关于2个日期之间判断相隔的天数的函数 如何根据DropDownList中的值得到它的索引号 奇怪的添加引用的问题 webservice不能返回hashtable或者是nameValueCollection吗 求正则写法 uml的学习会不会帮助学习软件制作的流程 视频流加密 2011092902
{
List<int> list = new List<int>();
for (int i = 1; i <= 100; i++)
{
list.Add(i);
}
Delete(list);
Response.Write(list[2].ToString());
}private void Delete(List<int> list)
{
int index = 0;
int count = list.Count;
for (int i = 1; i <= count / 3; i++)
{
list.Remove(list[i * 3 - 1 - index]);
index++;
}
if (list.Count <= 3)
{
return;
}
Delete(list);
return;
}
输出95思路是,不停删除被3整除的(index为2,5,8……的),删到数组只剩下3个时,第3个就是最后被删的你的题目没说明第一个删不删,如果第一个删,把循环的i=1改成i=0
int[] arr = new int[100];
for (int i = 0; i < 100; i++)
{
arr[i] = i;
}
List<int> temList = arr.ToList();
int lenght = 100;
for (int i = 0; i < lenght; i++)
{ temList.RemoveAt(i);
lenght = lenght - 1;
i = i + 1;
}
int[] getArr = temList.ToArray();
这就是隔两个删除
{
List<int> list = new List<int>();
for (int i = 0; i < 100; i++)
{
list.Add(i);
}
GetLastList(list);
Console.WriteLine(list[0].ToString());
Console.ReadLine();
}
private static void GetLastList(List<int> list)
{
for (int i = 0; i < list.Count; i = i + 2)
{
list.RemoveAt(i);
}
if (list.Count != 1)
{
GetLastList(list);
}
}