题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号. 输入格式: n m 输出格式: 出圈的编号 说明 m,n≤100
数据较小,直接模拟了,应该可以直接用数学推(不确定),推出第几个出局的是第几个人。
#includeusing namespace std;int main() { int n,m,s=0; scanf("%d%d",&n,&m); bool visit[200]= { 0}; for(int k=0; k n)s=1; //模拟环状结构 if(visit[s])i--; //跳过出局的人 } printf("%d ",s); //出局 visit[s]=true; } return 0;}