约瑟夫环

约瑟夫环公式:f(N,M)=(f(N-1,M)+M)%N;

 1 class Solution {
 2 public:
 3     int findTheWinner(int n, int k) {
 4     // 约瑟夫环:f(N,M)=(f(N-1,M)+M)%N;
 5     int last=0;//幸存者的下标最终为0
 6     // 进入for循环进行逆推最初位置
 7     for(int i=2;i<=n;i++){
 8         last=(last+k)%i;
 9         }
10         return last+1;
11     }
12 };

 

posted @ 2021-04-12 23:12  nilbook  阅读(161)  评论(0编辑  收藏  举报