题目:
有几个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
分析: 用一维数组存放人的信息,初始化全部赋值为1,凡退出圈子的赋值为0.用一个计数器来记录报的数,初始值为1,每次报数自增1,一旦报到3,把数组当前值赋值为0,计数器置0,依次循环。循环遍历数组,需要注意的是 1凡是对出圈子的人不能重复退出圈子,这就需要判断此时这个人是否已退出。2,不能把所有的人都退出去,用一个变量存退出的人数。ps:可以算一下n个人最少需要几次循环来遍历数组,就可以得出结果。
下面是用Java实现: