出圈
1070: 【出圈】
Time Limit: 1 Sec Memory Limit: 128 MbDescription
设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。
Input
输入多行,每行2个数,分别表示n和m.
Output
计算每一行中最后剩下这个人的编号.
Sample Input
10 3
Sample Output
4
HINT
Source
#include <stdio.h> int main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF) { int flag[1000]= {0}; int i,j; int t=m; for(i=1,j=1;; i++,j++) { if(flag[j]==1) { i--; } if(i==n) { flag[j]=1; t--; i=0; } if(j==m) { j=0; } if(t==1&&flag[j]==0&&j!=0) { printf("%d\n",j); break; } } } return 0; }