通过一个一维数组实现的队列解决最简单的一种Josephus Problem.
/* Josephus Problem */
#include <iostream>
using namespace std;
int Q[100];
int head = 0;
int tail = 0;
void dequeue(){
head += 2;
}
void enqueue(){
tail++;
Q[tail] = Q[head];
}
int main(){
cout<<"enter the number of the queue <1--99>:"<<endl;
int n;
cin>>n;
for(int i = 1; i <= n; i++){
Q[i] = i;
}
head = 1; tail = n;
do{
enqueue();
dequeue();
}while( tail > head);
cout<<Q[tail]<<endl;
return 0;
}