程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用C#循環鏈表解決約瑟夫環的問題

使用C#循環鏈表解決約瑟夫環的問題

編輯:C#入門知識

前幾日看到一個關於約瑟夫環的面試題,於是試著動手做了一下,沒有采用.Net類庫的LinkedList類,自己實現了一個循環鏈表結構,然後模擬游戲過程得出結果。

具體代碼如下:

\\代碼 class Program
    {
        static void Main(string[] args)
        {
            const int HUMAN_MAX = 17;
            const int HUMAN_INDEX = 3;
            const int HUMAN_NUMBER = 0;
 
            LinkTable<Human> list = new LinkTable<Human>();
            for (int i = 0; i < HUMAN_MAX; i++)
            {
                list.Add(new Human(i));
            }
 
            Human human = list.First;
            int number = HUMAN_NUMBER;
            do
            {
                if (number == HUMAN_INDEX)
                {
                    number = 0;
                    Console.WriteLine(human.ID);
                    list.Remove(human);
                }
                else
                {
                    number++;
                    human = (Human)human.Next;
                }
            }
            while (human.Next != human);
            Console.WriteLine(human.ID);
 
            Console.Read();
        }
 
        public class Human : LinkT

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved