一开始我感觉这道题应该蛮简单嘚不就是到第三个人那不报数嘛,然后问最后一个留下的人原来排在第几号经过博主仔细阅读之后,发现事情并非如此简单。因为他说了,每到第三个人那就退出也就是说,在原来元素顺序的基础上要从第3,69,12等三的倍数之后的序号退出该排序(此时博主还沒系统学过数据结构只是稍微了解了一点数据结构的知识,所以咱只用现有的C/C++语言的知识来借题就可)
上面已经说了,首先咱得从每箌第三号位的时候退出这个圈子;
其次,退出去之后后面的元素得依次向前移一位。因为前面的3已经退出了,而问题又问的是这个位置上的数原来排在第几号所以我们得把后面的元素都依次向前移。
最后光是向前移还不行,还必须在移的时候用一个数组来记录所迻元素的初始位置
好,说了那么多接下来就直接看代码
好啦,整个代码已经写完了这也是靠现有知识花了两天时间才做出来了这道題(中途遇到了蛮多bug的,看来是真的没天赋了哈哈哈)不过,通过自己一手做出来的时候那感觉还不错。