本帖最后由 hnxtzouyuxi 于 2015-9-18 21:43 编辑
package com.yuxi.day20;
import java.util.ArrayList;
public class Test2 {
/**
* 需求:2、 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
* 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//建立一个集合分别把握1-100的数字存入
ArrayList<Integer> al =new ArrayList<Integer>();
for(int i=0;i<100;i++)
{
al.add(i+1);
}
method(al);
System.out.println(al.get(0));
}
public static void method(ArrayList<Integer> arr)
{
//报的数字开始值为1
int number=1;
while(true)
{
//确定集合中至少有一元素
if(arr.size()>1)
{
//循环遍历当number等入14的时候,删除集合相对应的为元素
for(int i=0;i<arr.size();i++,number++)
{
//当报到14的数就删除集合对应的元素
if(number==14)
{
//对number重新置0
number%=14;
arr.remove(i);
//删除后要使集合指向减1
i--;
}
}
}
//当最集合中只有一个元素的时候就是最后留下的那个人
else break;
}
}
}
|