题目:由n个人围成一个首尾相连的圈报数。
*从第一个人开始,从1开始报数,报到k的人出圈,
*剩下的人继续从1开始报数,直到所有的人都出圈为止。
*对于给定的k和n,求出所有人的出圈顺序.
这段代码是自己写的,辛苦调试了半天,基本思路比较简单,就是做两个List,第一个是用循环遍历源List模拟围成圈子报数的人,每到第k个人就把源List里的这个位置的对象remove掉,并且在结果List中同样的位置加入第几次被移除这个次数,位置是源List里保存的对象。
这里比较难调试的地方是,当源List的长度小于k时,移除源List里的对象后计算下一个index的位置比较麻烦,需要注意循环中优先判断源List的长度只剩一个人的情况,再判断k等于list长度,这是把index置0相当于把指针移到list第一个元素,然后判断k超过list长度,取(k%list的长度)这个余数作为index新坐标,最后再判断当前这个循环式第几个人在报数,不是k就index递增,是k的话就移除当前元素。

634

被折叠的 条评论
为什么被折叠?



