这题没什么好分析的了,看完题目,直接上代码吧!
代码#include
using namespace std;
void Josephus(int n){
int *p = new int[n];
for (int i = 0; i 1){
//剩余未出局人数大于1时,游戏继续
if (p[k] != -1){
//p[k] == -1表示已经出局
count ++;
if (count % 3 == 0){
p[k] = -1;//出局
remainder --;//剩余人数减1
}
}
k = (k + 1) % n;
}
for (int i = 0; i < n; i ++){
if(p[i] != -1){
cout <<"胜出者:" << p[i] << "号" << endl;
}
}
}