本帖最后由 375798258 于 2014-9-18 01:56 编辑
- package com.itheima;
- /*
- * 10、 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
- * 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- */
- import java.util.*;
- class Test10 {
- public static void main(String[] args) {
- //定义一个集合1-100
- ArrayList<Integer> a1=new ArrayList<Integer>();
- //a2用来存储数到14的a1中第几个下标
- ArrayList<Integer> a2=new ArrayList<Integer>();
- //向集合中添加100个元素
- for (int i = 1; i <=100; i++) {
- a1.add(i);
- }
- //初始化 count 计数个数1-14;x下标
- int count=1,x=0;
- while(a1.size()>1){
- //
- while(x<a1.size()){
-
- //存储被14整除a1的下标
- if(count==14){
- a2.add(x);count=1; x++;
- }else{
- //count记录数到第几个,x记录集合下标
- count++; x++;
- }
- }
- x=0;
- //删除a1中以a2中元素为下标的元素,从后往前删保证删除正确
- for (int i = a2.size()-1; i >=0; i--) {
- int j= a2.get(i);
- a1.remove(j);
-
- }
- //清楚a2中元素
- a2.clear();
- }
-
- System.out.println(a1.get(0));
- }
- }
复制代码
|