利用C++解决约瑟夫问题。
答案:1 悬赏:70 手机版
解决时间 2021-04-28 15:15
- 提问者网友:皆是孤独
- 2021-04-28 08:14
利用C++解决约瑟夫问题。
最佳答案
- 五星知识达人网友:白昼之月
- 2021-04-28 08:40
这是以前写的一个用C++动态数组实现约瑟夫环问题. 有问题还请追问.
程序如下:
#include <iostream>
using namespace std;
int main()
{
int n,m;
cout<<"输入玩家人数:";
cin>>n;
cout<<"输入报到哪个数会被淘汰:";
cin>>m;
bool *a=new bool[n]; //定义玩家数组;
int s=n,num=0; //s用于记录未被淘汰玩家的个数. num用于累加报数值.
for(int i=0;i<n;++i) //初始化玩家状态.
a[i]=true;
i=0; //下标重置.
while(i=i%n,1!=s)
{
if(a[i++] && ++num%m==0)
{
cout<<"第"<<i<<"位小孩被淘汰!"<<endl;
a[i-1]=false;
s--;
}
}
for(i=0;!a[i];++i); //寻找数组中胜利的玩家.
cout<<"\n第 "<<i+1<<" 位小孩胜利!"<<endl;
return 0;
}
附图:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯