题意:n个人围成一圈,编号从1-n,规定第一个被杀掉的人编号为m,然后开始每数k个数,杀掉一个人,问最后剩余的人编号
思路 : a[n] = ( a[n - 1] + k ) % n,只不过第一个出去的人变成了m而已,last = (((last + m - k + 1) % n) + n) % n;
AC代码:
#include<cstdio>
int main()
{
int n,m,k;
while(scanf("%d %d %d",&n,&k,&m) != EOF){
int last = 0;
for(int i = 2; i <= n; i++)
last = (last + k) % i;
last = (((last + m - k + 1) % n) + n) % n;
printf("%d\n",last);
}
return 0;
}