题目:
思路:
约瑟夫问题变种,一圈一圈循环,出局置为1,直到结束游戏。
(sublime的格式分的好开,话说我有点想转github写博客了,makedown舒服很多)
代码:
1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 int N = 10000; 8 int s[10001]; 9 int n, k, i = 0, sum = 0; 10 cin >> n >> k; 11 int t = n; 12 for (int q=0;q<10001;q++) 13 { 14 s[q]=0; 15 } 16 17 while (t > 1) 18 { 19 20 if (s[i] == 0) 21 sum++; 22 else 23 { 24 i++; 25 if (i >= n) 26 i %= n; 27 continue; 28 } 29 30 if (sum % k == 0 || sum % 10 == k) 31 { 32 s[i] = 1; 33 t--; 34 } 35 36 i++; 37 if (i >= n) 38 i %= n; 39 } 40 41 for (i = 0; i < n; i++) 42 { 43 if (s[i] == 0) 44 cout << i + 1; 45 } 46 return 0; 47 }
原文:https://www.cnblogs.com/blogxjc/p/11279589.html