不懂你是谁
这个我搞起来了

这个我搞起来了、下面是完整的代码。

#include *本站禁止HTML标签噢*

using namespace std;

struct Node{

int num;//编号

Node*next;

};

class Josephus{

friend void printff(Josephus a,int k,int m);

public:

Josephus();

Josephus(int n);

// void print();

int getnumber();

private:

Node*first;

int Number;

};

Josephus::Josephus(){

first=NULL;

first->next=first;

Number=0;

}

Josephus::Josephus(int n)

{

Number=n;

Node*p;

first=new Node;

first->num=1;

first->next=first;

for(int i=n;i>=2;i--){

p=new Node;

p->next=first->next;

first->next=p;

p->num=i;

}

}

int Josephus::getnumber(){

return Number;

}

//void Josephus::print(){

// Node*p;

// p=first;

// for(int i=1;i<=Number;i++){

// cout<<p->num;

// p=p->next;

// }

//}

void printff(Josephus a,int k,int m){

Node*p;

Node*r;

p=a.first;

cout<<"输出顺序为:"<<endl;

if(k==1)

{

r=p;

while(r->num!=a.Number)

r=r->next;

for(int i=0;i<a.Number;i++){

p=r->next;

for(int j=1;j<m;j++){

r=p;p=p->next;

}

cout<<p->num;

r->next=p->next;

delete p;

}

}

else{

while(p->num!=k-1)p=p->next;

r=p;p=p->next;

for(int i=0;i<a.Number;i++){

p=r->next;

for(int j=1;j<m;j++){

r=p;p=p->next;

}

cout<<p->num;

r->next=p->next;

delete p;

}

}

}

int main(){

Josephus A(9);

// A.print();

printff(A,1,5);

return 0;

}