pxlt.net
当前位置:首页>>关于c++怎么实现约瑟夫问题?的资料>>

c++怎么实现约瑟夫问题?

1、约瑟夫问题:n个人(编号从1到n)围成一圈, 从第k(1≤k≤n)个人开始依次报数(从1开始), 第m个被杀掉, 然后再由下一个人重新报数, 直到所有人被杀, 依次显示被杀掉的人的编号。 2、例程: #include#define MaxSize 50#define ElemType intusing na...

这里补充一下约瑟夫问题的描述:N个人围成一圈,从第一个开始报数,数到M的人出队,然后他的下一位继续从1开始报数,数到M的出队,如此循环直到剩下一个人,求最后剩下的那个人最初是队伍中的第几位。 解决这道题可以采用模拟报数的方法,建立一...

1、解决这道题可以采用模拟报数的方法,建立一个大小为N的数组,数组的第N个元素表示第N个人是否还在队伍中,首先将每个元素都置为1,表示全员都在队伍中。如果第N个人出队,则将第N个元素置为0。 2、模拟报数可以使用一个累加计数器,用它表示...

#include void main() { int i,remain=13; int a[13]; int count = 0; for(i=0;i1) { for(i=0;i

用两个数组可以完成,一个存k个人的名字(a[]),一个存每个人的标记(b[]),是否被扔下海(初始都为0),用一个变量开始从0~9开始计数,同时也同步遍历两个数组(当数组b为1时,计数变量不累加,a和b要继续往后遍历,知道b不为1,计数变量再继...

#include using namespace std; int main() { int n,s,m; coutm>>s; if(n

百度百科中就有介绍,而且有源码,你自己研究吧: http://baike.baidu.com/view/213217.htm

给,已经编译运行确认: #include #include using namespace std; typedef struct LNode{ int number; struct LNode *next; }LNode,*LinkList; //建立线性表 int InitLinkList(LinkList &L){ L=new LNode; if(L==NULL) return 0; L->next=NULL; ...

#include #define MaxSize 50 #define ElemType int using namespace std; typedef struct //定义顺序表结构体类型 { ElemType data[MaxSize]; //存放每个人的编号 int length; }SqList; void CreateList(SqList&L,int n) //创建顺序表 { int i

#include int main() { const int n; int m=4; int a[n]; for(int j=0;j

网站首页 | 网站地图
All rights reserved Powered by www.pxlt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com