早教吧作业答案频道 -->其他-->
跪求!C++!利用循环链表实现约瑟夫问题的求解约瑟夫问题如下:已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列;他的下一
题目详情
跪求! C++ ! 利用 循环链 表实现 约瑟夫 问题的求解
约瑟夫问题如下: 已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。 ( 最好能帮我把关键算法注释一下)
约瑟夫问题如下: 已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。 ( 最好能帮我把关键算法注释一下)
▼优质解答
答案和解析
#include
struct Node
{
int data;
Node *next;
};
void main()
{
int n,k,m,i,s;
Node *p,*q,*head;
cout< cin>>n;
cout< cin>>k;
cout< cin>>m;
head=new Node; //确定头结点
p=head;
for(i=1;i<=n-1;i++) //赋初值
{
p->data=i;
p->next=new Node; //为下一个新建内存
p=p->next;
}
p->data=n; //最后一个单独处理
p->next=head; //指向头,形成循环链表
p=head;
while(p->data!=(p->next)->data) //p->data==(p->pNext)->data表示只剩下一个结点的
{
while(p->data !=k) //寻找编号为k的结点
p=p->next;
s=1;
if(m==1)
{
for(i=1;i {
cout<data< p=p->next ;
}
cout<data< break;
}
else
{
while(p!=p->next)
{
for(i=1;i p=p->next;
q=p->next;
cout<data< p->next=q->next;
p=p->next;
delete q;
s++;
}
cout<data< delete p;
}
}}
/*这是今天刚做的,你看看应该可以吧,是C++的*/
struct Node
{
int data;
Node *next;
};
void main()
{
int n,k,m,i,s;
Node *p,*q,*head;
cout< cin>>n;
cout< cin>>k;
cout< cin>>m;
head=new Node; //确定头结点
p=head;
for(i=1;i<=n-1;i++) //赋初值
{
p->data=i;
p->next=new Node; //为下一个新建内存
p=p->next;
}
p->data=n; //最后一个单独处理
p->next=head; //指向头,形成循环链表
p=head;
while(p->data!=(p->next)->data) //p->data==(p->pNext)->data表示只剩下一个结点的
{
while(p->data !=k) //寻找编号为k的结点
p=p->next;
s=1;
if(m==1)
{
for(i=1;i
cout<data<
}
cout<data<
}
else
{
while(p!=p->next)
{
for(i=1;i
q=p->next;
cout<data<
p=p->next;
delete q;
s++;
}
cout<data<
}
}}
/*这是今天刚做的,你看看应该可以吧,是C++的*/
看了 跪求!C++!利用循环链表实...的网友还看了以下:
已知有如下反应:A+B→C+D.(1)若A为Fe,B为CuSO4(溶液),则C、D的化学式分别是、 2020-05-02 …
已知有如下转化关系:CH3CHO①C2H5OH②C2H4③C2H5Br;则反应①、②、③的反应类型 2020-05-04 …
已知有如下反应:A+B→C+D(1)在四种基本反应类型中,可用上式表示的反应有和.(2)若A是H2 2020-05-13 …
已知有如下反应:A+B→C+D(1)在四种基本反应类型中,可用上式表示的反应有和。(2)若A是H2 2020-05-13 …
(2009•桂平市二模)已知有如下反应:A+B→C+D(1)在四种基本反应类型中,可用上式表示的反 2020-05-13 …
关于化学反应类型的在一个密闭的容器中,有甲乙丙丁四种物质在一定条件下充分反应,测的反应前后格物致知 2020-05-16 …
已知有如下关系模式:R1(a,b,c),R2(c,d,a),R3(e,f),R4(a,e,g),其中 2020-05-23 …
已知有如下均值不等式:对任意三个正数a,b,c,有a+b+c≥3*(abc的3次方根),当且仅当a 2020-08-01 …
现有X、Y、Z三种非金属元素,A、B、C三种金属元素,已知有如下情况:(1)X、Y、Z的单质在常温下 2020-12-07 …
现有X、Y、Z三种非金属元素,A、B、C三种金属元素,已知有如下情况:1、X、Y、Z的单质在常温下均 2020-12-07 …