单位笔试题,自己试做了一下

有100个人,分别编号(1到100的序号),然后依次报号,a、b、c,数到c的排除在该队列外,循环报号,最后只省一人,请问该人的序号是多少?(可以用任何语言)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example
{
    class Program
    {
     static   LinkedList<Person> persons;
        static void Main(string[] args)
        {
            InitPersons();
            System.Console.WriteLine("最后一个人为:"+GetPerson(persons.First).Name);
            System.Console.Read();
            
        }
        private static void InitPersons()
        {
           persons = new LinkedList<Person>();
            for (int i = 0; i < 100; i++)
            {
                persons.AddLast(new Person() {Name="name"+(i+1)});
            }
        }

        private static Person GetPerson(LinkedListNode<Person> A)
        {
            var B = A.Next == null ? persons.First : A.Next;
            var C = B.Next == null ? persons.First : B.Next;
            var AN = C.Next == null ? persons.First : C.Next;
            persons.Remove(C);
            if (persons.Count == 1) return persons.First.Value;
          return  GetPerson(AN);
        }

   }
    public class Person
    {
       public  String Name { get; set; }
    }
}



你可能感兴趣的:(C++,c,C#,LINQ)