求用循环队列解决约瑟夫环问题的C语言代码,急,速度!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/04/30 11:45:07
设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站出来。下一个人,即原来的第k+1个位置上的人,又从1开始报数,再报数到k的人站出来。依此重复下去,直到全部的人都站出来为止。试设计一个程序求出列序列。
请输入围坐在圆桌周围的人数n:7

请输入第一次开始报数人的位置m:3

你希望报数到第几个数的人出列k: 2

出列的顺序如下:4 6 1 3 7 5 2

他们都是用链表做的。。我没用链表做。。。很简单的写了一个。。。

#include <iostream.h>

void Fmade(int x, int y, int z);

void main()

{

 int a, b, c;

 //t i, j, k;

 //t aa[100], b[100];

 cout<<"请输入总人数:";

 cin>>a;

 cout<<endl<<"请输入开始位子:";

 cin>>b;

 cout<<endl<<"请输入步长:";

 cin>>c;

 Fmade(a, b, c);

}

void Fmade(int x, int y, int z)

{

 int i, j=0, k=0;

 int aa[100], bb[100];

 int start;

 aa[0]=0;

 

 for(i=1; i<=x; i++)

 {

  aa[i]=i;

 }

 start=y;

 while(j < x)

 {