约瑟夫环问题
Posted lqx0123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫环问题相关的知识,希望对你有一定的参考价值。
7-3 约瑟夫环问题-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
实验代码
/*这题写了3个多小时,太难了。主要是着逗号有点烦,后来我就想直接把将元素存入另一个数组中,去掉逗号。
这样就好办多了,然后就遍历,判断,求余等。
#include<stdio.h>
#define SIZE 100
int main()
{
int n;
char str1[SIZE] = { 0 }; //输入元素
char str[SIZE] = { 0 }; //去逗号,存元素
int index = 0; //从第一个元素遍历
int step = 1; //第一个元素也算一步
int count = 0; //出列元素个数
char outs[SIZE] = { '