转圈圈报数,n个人围成一圈,第i个人开始依次报数,报到k时的人出队,求出队的序号。
- 先画个草稿,画一个圈,原先有n个人,围城一圈,然后从第i个人开始报数,从1报到k,每当报数为k时,该人出去,n--,随后重新从1报数.
- 转化为代码思路——先看最后索要实现的东西,第i个人,从1到k报数,当报数的人报k时,出队,从1到k进行循环,那么第i个报数的人,换到下一个为i++,另外报数的人单独可为一个数据,因此报数的人设成一个数组renma,并依次赋值其代号为1到n。因此最终循环为报数为循环主体,即为baoshu,当前所baoshu的人renma[i-1]也相应增加即i++,当报到k时,renma[i-1]直接输出即可,再立马赋值为0,表示该人已经出去。由于该人已经出去,所以当再次循环到这个位置时,所报数为上一次报数即可,相当于等待。
- 此外,开始报数时,看一下限制条件,人数最大为max,所以当i>max时,i变为1(从1开始报),当再次排到renma[i-1]==0时&