首页 > Windows开发 > 详细

C#: 约瑟夫环 - 解法思路

时间:2021-08-14 11:48:50      阅读:26      评论:0      收藏:0      [点我收藏+]

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知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);
            }

技术分享图片

 

C#: 约瑟夫环 - 解法思路

原文:https://www.cnblogs.com/zjhn/p/15140244.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!