令F[n] 为n个人最后剩的人,f[1] = 0,f[n] = (f[n-1] + k) % n.
n个人 首先走k步 删除一人 剩下n-1人就会留下f[n-1],再加上k就是n个人留下的人的编号,再对n取模即可
#include<cstdio> int main() { int n,m,k; while(~scanf("%d%d%d",&n,&k,&m), n|m|k) { int i, ans = 0; for(i = 2; i < n; i++) { ans = (ans + k) % i; } ans = (ans + m) % n; printf("%d\n", ans + 1); } return 0; }