1 //约瑟夫环 2 #include <iostream> 3 using namespace std; 4 struct list 5 { 6 int number; 7 list *next; 8 }; 9 int main() 10 { 11 list *head, *s, *p, *q; 12 int n, i; 13 while (cin >> n) 14 { 15 s = new list; 16 s->number = 1; 17 head = s; 18 19 20 for (i = 2; i <= n; ++i) 21 { 22 p = s; 23 s = new list; 24 p->next = s; 25 s->number = i; 26 } 27 s->next = head; 28 int beg, cou; 29 cin >> beg >> cou; 30 q = s; 31 p = head; 32 for (i = 1; i < beg; ++i) 33 { 34 q = p; 35 p = p->next; 36 } 37 int num = 0; 38 while (1) 39 { 40 num++; 41 if (num == n) 42 { 43 break; 44 } 45 for (i = 1; i < cou; ++i) 46 { 47 q = p; 48 p = p->next; 49 } 50 q->next = p->next; 51 cout<<p->number<<endl; 52 delete p; 53 p = NULL; 54 p = q->next; 55 } 56 57 cout << p->number << endl; 58 } 59 return 0; 60 }
原文:https://www.cnblogs.com/dss-99/p/14146876.html