哪个大佬能和我说这个约瑟夫环哪里有问题吗#include <iostream>using namespace std;struct circle{ int id; circle *next;};circle* circlelist(int n){ circle *head,*p; p=head=new circle; for(int i=1;i<n;i++) { p->id=i; p->next=new circle; p=p->next; } p->id=n; p->next=head; return head;}circle* circledelect(circle *a,circle *b){ circle *h,*p; p=a; for(;p!=b;) { h=p; p=p->next; } delete b; h->next=b->next; return h;}circle* circleselect(circle *a,int n){ circle *head,*p; p=head=a; int k=1,A=0; for(;A!=n-1;) { if(k%3==0) { head=circledelect(a,p); A++; p=head; } p=p->next; k++; } return p;}int main(){ circle *a,*b; int n; cin>>n; a=circlelist(n); b=circleselect(a, n); cout<<b->id<<endl; return 0;}