设有n个人围坐在圆桌周围,现从某个位置 i 上的人开始报数,数到 m 的人就站出来。下一个人,即原来的第m+1个位置上的人,又从1开始报数,再是数到m的人站出来。依次重复下去,直到全部的人都站出来,按出列的先后又可得到一个新的序列。
例如:当n=8,m=4,i=1时,得到的新序列为:
4,8,5,2,1,3,7,6
编写程序模拟整个过程,并依次输出出列的各人的编号。
拜托高手帮忙做一下,用C++数组实现,变量用题目中的字母即可。
求C++约瑟夫猴子选大王问题,要用数组与最基本的方法。必重谢!!!_百 ...
\/\/约瑟夫环---数组 #include <stdio.h>#include <stdlib.h>int main(){int* s=NULL;int result[50];int c=0;int i,n,m,p=0,count=0;while(1){scanf("%d",&n);scanf("%d",&m);if(n==0 && m==0){break;}if(s!=NULL){free(s);}s=(int*)malloc(sizeof(int)*n);fo...
利用C++解决约瑟夫问题。
这里补充一下约瑟夫问题的描述:N个人围成一圈,从第一个开始报数,数到M的人出队,然后他的下一位继续从1开始报数,数到M的出队,如此循环直到剩下一个人,求最后剩下的那个人最初是队伍中的第几位。解决这道题可以采用模拟报数的方法,建立一个大小为N的数组,数组的第N个元素表示第N个人是否...
用C++编写约瑟夫环的代码,也就是出圈问题,n个人,数到k出圈,接着从1开 ...
m,s"<<endl; cin>>n>>m>>s; if(n<=0||s<=0||m<=0) { cout<<"error"<<endl; } int i,j,k,temp;\/\/k为次数 int A[100]; for(i=0;i<n;i++) { A[i]=i+1;
C++编程:约瑟夫环问题。
\/\/ 约瑟夫环的头指针 struct Prisoner * head;\/\/ 第一个被处决的犯人的节点指针 struct Prisoner * firstPunishedPrision;};JosephCircle::JosephCircle(int N,int S,int D){ struct Prisoner * p , *pr;\/\/ 约瑟夫环的头指针初始化为空 this->head = NULL;\/\/ 构造一个由 N 个犯人组成的约...
C++ 约瑟夫环问题
(1) 出圈游戏一:使用动态数组来接收输入,参加的人数和报数上限可变 (2) 出圈游戏二:使用循环链表来接受输入,参加的人数和报数上限可变 (3) 参加游戏者的编号和姓名存入文件play.txt中,按出圈顺序将出圈者的编号和姓名存入文件result.txt中。(4) 利用菜单提供用户界面,菜单格式如下:1. ...
c++问题小孩出列 求助!谢谢 我用n=90 s=7 m=5测试 得出的结果一到了8...
这个是约瑟夫环问题,使用循环链表做最简单,当然用数组模拟也可以,只不过要把数组假想成一个循环队列,这样才能正确模拟,使用for循环不好,不清楚到底是多少次循环,所以要用while循环,改动后代码如下:total = n;\/\/加在输入n之后,int 型 在 cout<<"Now,children of order row is :"<<endl;...
求约瑟夫环问题的解法
自己写的 C++程序 希望对你有帮助 \/*约瑟夫环 Joseph 是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。例如:...
敢死队问题 C\/C++
这是个约瑟夫环逆问题 推导是这样的:为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。我们知道第一个人(编号一定是m%n-1) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(...
1编写函数求:1-1\/2+1\/3-1\/4+...+1\/n C++
第二道题是约瑟夫环问题,我之前做过,先给你贴上。第一道题等等给你做。include <stdio.h> include <stdlib.h> define N 100 void Fri(int M,int n){ int count=0;\/\/计数器 int i=0;\/\/控制循环的变量 int p=0;\/\/出场后玩家的人数(每局一个玩家出场)int a[N]={0};\/\/将储存...
约瑟夫游戏问题
约瑟夫问题并不难,但求解的方法很多;题目的变化形式也很多。这里给出一种实现方法。 题目中30个人围成一圈,因而启发我们用一个循环的链来表示。可以使用结构数组来构成一个循环链。结构中有两个成员,其一为指向下一个人的指针,以构成环形的链;其二为该人是否被扔下海的标记,为1表示还在船上。从第一个人开始对...