#include<bits/stdc++.h>//1 1
struct node{
int data;
node *next;
};
int main(){
int n,m;
scanf("%d %d",&n,&m);
node *head,*p,*now,*prev;
head = new node;//0 1
head -> data = 1;
head -> next = NULL;
now = head;
for(int i = 2; i <= n; i++){
p = new node;
p -> data = i;//1
p -> next = NULL;//1
now -> next = p;
now = p;
}
now -> next = head;
now = head, prev = head;
while((n--)>1){
for(int i = 1; i < m; i++){
prev = now;//1 1
now = now -> next;
}
printf("%d ", now -> data);
prev -> next = now -> next;
delete now;//1
now = prev -> next;//1
}
printf("%d ",now->data);
delete now;
return 0;
}
约瑟夫问题洛谷p1996动态链表
最新推荐文章于 2024-10-05 15:32:05 发布