约瑟夫环

简介: 题目:已知n个人(以编号1,2,3--n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人有出列;以此规律重复下去,知道圆桌周围的人全部出列。输出出列顺序和最后剩下的人。

题目:

已知n个人(以编号1,2,3--n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人有出列;以此规律重复下去,知道圆桌周围的人全部出列。输出出列顺序和最后剩下的人。

分析:

这道题用我们平常的数组也能做,只不过要用到那个取模,

上代码:

#include <iostream>

using namespace std;

int main(void)

{

int n,p=0,m,k=0;
cin>>n>>m;
int arr[n];
for(int i=0;i<n;i++)
{
    arr[i]=i+1;
}
while(n>1)
{
    p=(p+m-1)%n;
cout<<++k<<" "<<arr[p]<<endl;
for(int j=p+1;j<n;j++)
    {
        arr[j-1]=arr[j];
    }
    n--;
if(p==n) p=0;
}
cout<<"最后剩下的是"<<arr[p]<<endl;
return 0;

}

目录
相关文章
|
9月前
|
存储 算法
|
5月前
约瑟夫环问题的几种解法
约瑟夫环问题的几种解法
74 0
|
6月前
|
算法
约瑟夫环问题(三种方法)
约瑟夫环问题(三种方法)
94 0
|
9月前
|
Java
(五)Java数据结构之循环链表解决约瑟夫(Josephus)环问题
(五)Java数据结构之循环链表解决约瑟夫(Josephus)环问题
65 0
|
10月前
|
算法 索引 Python
细究“约瑟夫环”
细究“约瑟夫环”
77 0
|
11月前
约瑟夫环问题
使用queue<int>q记得加上头文件#include<queue>
55 0
|
算法 Java
算法 | 链表的应用,约瑟夫问题
算法 | 链表的应用,约瑟夫问题
100 0
算法 | 链表的应用,约瑟夫问题