作业帮 > 综合 > 作业

约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数.从第一个

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/04/28 08:28:50
约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数.从第一个
用C++怎么实现,求助……
约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数.从第一个
#include
#include
#define maxsize 1000
typedef int ElemType;
typedef struct List//定义结构体链表
{
ElemType data[maxsize];
int length;
}*SqList;
SqList InitList( )//初始化顺序表
{ SqList L;
\x09L=(SqList )malloc(sizeof(List));//分配存放线性表的空间,使用动态存储分配.
\x09return L;
}
void CreateList(SqList L)//创建链表
{
\x09int i,n;
printf("总序号为:");
scanf("%d",&n);
\x09for(i=0;idata[i]=i+1;
\x09printf("%d",L->data[i]);
\x09}
\x09L->length=n;
}
void josephus(SqList L)//实现出列输出
{
\x09int i,j,t,m;
\x09t=0;
\x09printf("出列序号为:");
\x09scanf("%d",&m);
printf("出列顺序:\n");
\x09for(i=L->length;i>=1;i--)
\x09{
\x09\x09t=(t+m-1)%i;//出列数组元素的下标
\x09\x09printf("%d",L->data[t]);
\x09\x09for(j=t+1;jdata[j-1]=L->data[j];//删除出列元素
\x09}
}
void main()
{
SqList L;
\x09L=InitList();
CreateList(L); //调用创建链表函数以实现该功能
\x09josephus(L);//实现报数的出列
}
约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数.从第一个 设编号从1,2,...,n的n个人围坐一圈,约定编号为k(1 新的 猴子选大王 代码 猴子选大王 功能:设编号为1,2,3,……,n的n(n>0)个猴子按顺时针方向围坐 约瑟夫环 已知n个人围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列,m是什么 数据结构课程设计:设有n个人围坐在一个圆桌周围,编号为1,2,…,n.现在从第s个人开始逆序报数,即:第s个 /*3、约瑟夫问题约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到 设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人 C 设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一 原始的Joseph问题的描述如下:有n个人围坐在一个圆桌周围,把这n个人依次编号为1,……,n.从编号是1 的人开始报数 约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1— n),从第1号开始报数,一直数到m,数到m 约瑟夫问题:M个人围成一圈,从第一个人开始依次从1到N循环报数,每当报数为N时此人出圈,直到剩一人为止 约瑟夫问题:n个骑士编号1,2,.,围坐圆桌旁找出最后留在圆桌旁的骑士编号(1)编