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

2021/8/14 11:35:53

本文主要是介绍C#: 约瑟夫环 - 解法思路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知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#: 约瑟夫环 - 解法思路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程