题意
Josephus
思路
Josephus
代码
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int main () {
int T;
scanf ( "%d", &T );
for ( int ks = 1; ks <= T; ++ks ) {
int n, k;
scanf ( "%d%d", &n, &k );
//递归,从底往上
// f[1] = 0; //当一个人的时候,出队人员编号为0
// f[n] = (f[n-1] + m)%n //m表示每次数到该数的人出列,n表示当前序列的总人数
int s = 0;
for ( int j = 2; j <= n; ++j )
s = ( s + k ) % j;
printf ( "Case %d: %d\n", ks, s + 1 );
}
return 0;
}