C#: 約瑟夫環 - 解法思路
阿新 • • 發佈:2021-08-14
約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列,約瑟夫環結束。
int pepleCount = 30; //一共多少人 int index = 9; //第幾個出列 Queue<int> vs = new Queue<int>(); for (int i = 1; i <= pepleCount; i++) { vs.Enqueue(i); }int flag = 1; while (vs.Count>15) { if (flag==index) //報道對應數字的人出列 { Console.WriteLine("扔下去:"+vs.Dequeue()); flag = 1; } else { vs.Enqueue(vs.Dequeue()); flag++; } } foreach (var item in vs) { Console.WriteLine("剩下的:"+item); }