fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3. struct Ring {
  4. int per;
  5. Ring * next;
  6. };
  7. int main() {
  8. cout << "сколько человек нужно расчитать?" << '\n';
  9. int n;
  10. cin >> n;
  11. cout << "сколько слов в считалочке?" << '\n';
  12. int m;
  13. cin >> m;
  14. Ring * x = new Ring;
  15. Ring * y = new Ring;
  16. x->next = y;
  17. x->per = 1;
  18. for (int i = 2; i < n + 1; ++i)
  19. {
  20. y->per = i;
  21. y->next = new Ring;
  22. y = y->next;
  23. y->per = 1;
  24.  
  25. }
  26. y->next = x->next;
  27. Ring * z = x;
  28. while (x != x->next)
  29. {
  30. z = x;
  31. for (int i = 0; i < (m - 2); ++i)
  32. z = z->next;
  33. // cout << z->per << ' ';
  34. z->next = z->next->next;
  35. x = z->next;
  36. // cout << x->per << '\n';
  37.  
  38. }
  39. cout << "если бы все игроки были пронумерованы начиная с первого то после считалочки остался бы игрок под номером: " << x->per;
  40. return 0;
  41. }
Success #stdin #stdout 0s 4500KB
stdin
3
1
stdout
сколько человек нужно расчитать?
сколько слов в считалочке?
если бы все игроки были пронумерованы начиная с первого то после считалочки остался бы игрок под номером:  2