#include <bits/stdc++.h>
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
struct node {
int data;
node* next;
};
void fun(struct node* head, int n)
{
struct node* p, * q;
p = q = head;
while (n-- > 0)
{
q = q->next;
cout << p->data << " ";
p = q;
}
}
int main() {
int n, m;
cin >> n >> m;
node* head, * p, * now, * prev;
head = new node; head->data = 1; head->next = NULL;
now = head;
for (int i = 2; i <= n; i++) {
p = new node; p->data = i; p->next = NULL;
now->next = p;
now = p;
}
now->next = head;
if (m == 1) { fun(head, n); exit(1); }
now = head, prev = head;
while ((n--) > 1) {
for (int i = 1; i < m; i++) {
prev = now;
now = now->next;
}
//out << now->data;
printf("%d ", now->data);
prev->next = now->next;
delete now;
now = prev->next;
}
cout << now->data;
delete now;
return 0;
}
约瑟夫环的问题
最新推荐文章于 2025-02-21 16:40:04 发布