#include<iostream>
using namespace std;
int main()
{
const int n=100;
int m=30;
int a[n];
for(int j=0;j<n;j++)
a[j]=j+1;
int k=1;
int i=-1;
while(1)
{
for(int j=0;j<m;)
{
i=(i+1)%n;
if(a[i]!=0)
j++;
}
if(k==n)
break;
a[i]=0;
k++;
}
cout<<a[i]<<endl;
return 0;
}
利用C++解决约瑟夫问题。
这里补充一下约瑟夫问题的描述:N个人围成一圈,从第一个开始报数,数到M的人出队,然后他的下一位继续从1开始报数,数到M的出队,如此循环直到剩下一个人,求最后剩下的那个人最初是队伍中的第几位。解决这道题可以采用模拟报数的方法,建立一个大小为N的数组,数组的第N个元素表示第N个人是否...
c++问题小孩出列 求助!谢谢 我用n=90 s=7 m=5测试 得出的结果一到了8...
这个是约瑟夫环问题,使用循环链表做最简单,当然用数组模拟也可以,只不过要把数组假想成一个循环队列,这样才能正确模拟,使用for循环不好,不清楚到底是多少次循环,所以要用while循环,改动后代码如下:total = n;\/\/加在输入n之后,int 型 在 cout<<"Now,children of order row is :"<<endl;之...
用C++编写约瑟夫环的代码,也就是出圈问题,n个人,数到k出圈,接着从1开 ...
include <iostream> using namespace std; int main() { int n,s,m; cout<<"please input the valuse of n,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+...
C++ 初学者的问题..
首先,为了解决这个问题建立了一个链表。struct jose就是建立链表的节点(结构体),里面有一个code变量储存小孩的编号(可参考单链表的建立),同时定义了一个结构体指针*next,用来指向下一个节点。而Jose *pCur, *pivot都是定义了一个结构体指针,这两个指针在creatRing中初始化,通过函数coutBoy将...
求看下这个用C语言写的约瑟夫环代码错在哪儿
void del_Joseph(Joseph*current_p,Joseph *pre_p)这个函数去掉参数列表,直接用全局变量就行,不去掉反而会错。因为,当他们作为参数传递时,本身的值是不能被改变的。而你在函数中释放掉current_p所指向的空间,但current_p仍指向该空间,导致后面出错。发现这个问题,只要你打印下每次删除的值就行了...
c++ 点名问题
这是典型的约瑟夫环的问题 include <stdio.h> int main(void){ int n,m, i, s=0;printf("输入n,m:");scanf("%d%d",&n,&m)for (i=2; i<=n; i++)s=(s+m)%i;printf ("最后留下的是原来第%d号\\n", s+1);} 如果楼主不求最后剩下的那个,而是求依次退出的编号顺序 那么...
C++ 约瑟夫环问题
(1) 出圈游戏一:使用动态数组来接收输入,参加的人数和报数上限可变 (2) 出圈游戏二:使用循环链表来接受输入,参加的人数和报数上限可变 (3) 参加游戏者的编号和姓名存入文件play.txt中,按出圈顺序将出圈者的编号和姓名存入文件result.txt中。(4) 利用菜单提供用户界面,菜单格式如下:1. ...
用C++写约瑟夫环和多项式的线性运算
using namespace std;\/\/该程序调用容器vector,但是main函数的内容无需改动,面向对象 struct Player { int Number; \/\/游戏者的编号 int Secret; \/\/游戏者的密码 Player& operator=(Player& T){ Number = T.Number;Secret = T.Secret;} };class LinkList { private:vector<Player>::itera...
这或许是你能找到的最详细约瑟夫环数学推导!
至此,数学推导过程基本完成。接下来,我们给出代码实现,以Python、C++和Java三种语言为例。在代码实现时,需要注意从上文分析中是从x开始编号的,而题目是从0开始编号,因此返回值需要进行相应的转换。在理解了上述推导过程后,我们可以得到约瑟夫环问题的数学证明,以及如何从最终状态反推原始状态的解决...
帮忙改一下约瑟夫环,高分求助,如果采纳补加200以上
"<num;p->next=q->next;} } int main(){ createLink();outputRlt();return 0;} 先前的代码我这里就能运行,我用的是vs2005,如果你的编译器不一样,那么有可能是头文件问题,你试下把头文件的using namespace std这一行去掉,然后把#include"iostream"改成#include"iostream.h"...