约瑟夫环问题

约瑟夫环问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)

 

假设有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 }    

 

posted on 2015-06-29 09:09  kevinchenchn  阅读(84)  评论(0)    收藏  举报