约瑟夫环问题-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