你是否正在寻找关于约瑟夫环的内容?让我把最宝贵的东西奉献给你:
【项目3】Josephus(约瑟夫环)问题
n个小孩子围成一圈,从第一个小孩子开始顺时针方向数数字,到第m个小孩子离开,这样反反复复,最终只剩下一个小孩子,求第几个小孩子留下?
提示:约瑟夫环即是一个首尾相连的链表,在建立好这个环以后,从头结点开始,每次间隔m孩子删除一个结点,直至只余下一个结点(删除了n-1个)。
参考下面的代码,也可以自行设计类,。//链表结点kid,其中number为这个人的编号
struct kid
{
int number;
kid *next;
};
//约瑟夫环类
class joseph_ring
{
private:
int n;//用于存放人数
int m;//用于存放初始密码
kid *head;//链表的头结点,初始化时指向1号孩子
public:
joseph_ring(int nn, int mm);//创建nn个孩子,间隔为mm的
约瑟夫环
~joseph_ring();
void show();//运算并输出的成员函数
};
//定义joseph_ring类中的成员函数
……
int main()
{
int n,m;
cout<<"n=";
cin>>n;
cout<<"m=";
cin>>m;
joseph_ring j(n,m);
j.show();
return 0;
}
参考解答:
#include
以上就是关于约瑟夫环的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-95-1.html
但菲律賓可能當全新最強用