有十个人,每个人一次报号,从1开始,第十个人报完号之后,第一个人从十一开始保号,依次类推,将报号的有3的倍数的人踢出,问最后剩下的起初的第几个人。
其实这个问题用java写的话很简单,但是你若不了解集合的一些特性,写起来却会很费劲。这个代码主要用到Iterator,因为迭代器可以自己删除内部的项,而其它集合都没有这样的特性,这样的一个好处就是,你可以判断这个数据是否3的倍数,如果是,就直接remove掉,通过一个变量索引来遍历集合,这样就很快完成了这个算法。
有十个人,每个人一次报号,从1开始,第十个人报完号之后,第一个人从十一开始保号,依次类推,将报号的有3的倍数的人踢出,问最后剩下的起初的第几个人。
其实这个问题用java写的话很简单,但是你若不了解集合的一些特性,写起来却会很费劲。这个代码主要用到Iterator,因为迭代器可以自己删除内部的项,而其它集合都没有这样的特性,这样的一个好处就是,你可以判断这个数据是否3的倍数,如果是,就直接remove掉,通过一个变量索引来遍历集合,这样就很快完成了这个算法。