#include<iostream>
using namespace std;
typedef struct node{
int data;
node* next;
}ListNode;
typedef ListNode *LinkList;
LinkList initRing(int n,LinkList R);
LinkList DeleteDeath(int n,int k,LinkList R);
void main(){
LinkList R=new ListNode;
int n,k;
cout<<"总人口数n=?,报数上限k=?/n";
cin>>n>>k;
initRing(n,R);
DeleteDeath(n,k,R);
}
LinkList initRing(int n,LinkList R){
ListNode *p,*q;
int i;
R=q=new ListNode;
for(i=1;i<n;i++)
{
p=new ListNode;
q->data=i;
q->next=p;
q=p;
}
p->data=n;p->next=R;R=p;
return R;
}
LinkList DeleteDeath(int n,int k,LinkList R)
{
int i,j;
ListNode *p,*q;
p=R;
for(i=1;i<=n;i++)
for(j=1;j<=k-1;j++){
p=p->next;
q=p->next;
p->next=q->next;
cout<<q->data<<endl;
if(i%10==0)
cout<<n<<endl;
}
free(q);
cout<<n<<endl;
return R;
}