黑马程序员技术交流社区
标题:
需求: 有100个人围成一个圈,从1开始报数,报到14的这个人...
[打印本页]
作者:
hnxtzouyuxi
时间:
2015-9-24 23:57
标题:
需求: 有100个人围成一个圈,从1开始报数,报到14的这个人...
package com.yuxi.day0924;
import java.util.ArrayList;
public class Test {
/**
* 需求: 有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;
}
}
}
复制代码
作者:
duqiang1441
时间:
2015-9-25 00:43
看看。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2