当前位置:编程学习 > C#/ASP.NET >>

一个题目!

比如有一个数组, a[100],每隔两个删除一个, 到数组末尾再从头顺序再来,问最后一个被删除的是谁?  --------------------编程问答-------------------- 作业请自己做。 --------------------编程问答-------------------- 做不了啊。。。。 --------------------编程问答-------------------- a[100] --------------------编程问答-------------------- 都是3的倍数,递归,每次去除3的倍数 --------------------编程问答-------------------- LZ你先结贴 我帮你做~! --------------------编程问答--------------------  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();
 
这就是隔两个删除 --------------------编程问答-------------------- 口算的  是不是 最后删的是不是第一个数字啊? 也就是说1 ??? --------------------编程问答-------------------- 自己Google约瑟夫环算法。 --------------------编程问答-------------------- 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);
            }
        } --------------------编程问答--------------------
引用 8 楼 silverradiance 的回复:
C# code

int[] arr = new int[100];
            for (int i = 0; i < 100; i++)
            {
                arr[i] = i;
            }
            List<int> temList = arr.ToList();
          int……

可以 --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,