c语言 7-8 约瑟夫环问题

7-8 约瑟夫环问题

分数 20

全屏浏览题目

切换布局

作者 abc618382

单位 河北科技大学

约瑟夫环问题

约瑟夫环是一个数学的应用问题:已知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

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include
int main()
{
	char a[50],t;
	int i,j,m;
	scanf("%d",&m);
	t=getchar();
	for(i=0;i<50;i++)
	{
		a[i]=getchar();
		t=getchar();
		if(t=='\n')
			break;
	}
	int k=1,l=0;
	while(1)
	{
		for(j=0;j<=i;j++)
		{
			if(a[j]!=0)
				l++;
			if(l==m*k)
			{
				if(k==i+1)
				{
					printf("%c",a[j]);
					return 0;
				}
				else 
					printf("%c,",a[j]);
				a[j]=0;
				
				k++;
			}
		}
	}
}

你可能感兴趣的:(算法,c语言)