其他分享
首页 > 其他分享> > 约瑟夫环问题-hebust

约瑟夫环问题-hebust

作者:互联网

约瑟夫环问题

约瑟夫环是一个数学的应用问题:已知n个人(以编号a,b,c…分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。

输入格式:
固定为2行,第一行为m,第二行为n个人的名称列表,用英文字母代表,元素直接使用英文逗号 , 分开

输出格式:
一行,为出列元素序列,元素之间使用英文逗号 , 分开【注意:末尾元素后没有逗号】

输入样例:
在这里给出一组输入。例如:

3
a,b,c,d,e,f,g

输出样例:
在这里给出相应的输出。例如:

c,f,b,g,e,a,d

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int vis[1000];
int main ()
{
	char a[1000],t;
	vector<char>s;
	int m,i=1,ans=0,j=1;
	scanf("%d",&m);
	getchar;
	while(~scanf("%c",&t)){
		if(t>='a'&&t<='z')
		a[i++]=t;
	}
	 j=1;
	while(1){
		if(!vis[j])
		ans++;
		if(ans==m){
		s.push_back(a[j]);
		ans=0;
		vis[j]=1;
		}
		j++;
		if(j==i)
		j=1;
		if(s.size()==i-1)
		break;
	}
	for(int i=0;i<s.size();i++){
		if(i==0)
		printf("%c",s[i]);
		else
		printf(",%c",s[i]);
	}
	return 0;
}
院长i 发布了85 篇原创文章 · 获赞 94 · 访问量 9991 私信 关注

标签:逗号,出列,int,元素,约瑟夫,问题,hebust,include
来源: https://blog.csdn.net/zp1455604302/article/details/104199691