约瑟夫环问题
约瑟夫环问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)
假设有m个人,围城一圈,依次编号,从1号开始报数,报到k为止,循环往复。求最后一名剩下的人。
1 #include <iostream> 2 using namespace std; 3 const int k = 3; 4 int main() 5 { 6 int m, n = 0; 7 cin >> m; 8 for (int i = 1; i <= m; i++) 9 n = (n + k) % i; 10 cout << n + 1 << endl; 11 }
浙公网安备 33010602011771号