任意人数的一排人,报数,一二三,报到三的人出列,然后继续一二三报数,到队尾最后一人时,再从队列的开始处继续,直到只剩下两个人,要求打印出出列的人的序号 
 纠结了好久都没想出来  求大神赐教

解决方案 »

  1.   

    public static void main(String... args){
    Integer [] array = {1,2,3,4,5,6,7,8,9,10,11,12,13};
    List<Integer> list = new ArrayList<Integer>();
    Collections.addAll(list, array);

    printNum(list);
    }

    private static void printNum(List<Integer> list){
    if(list.size()>2){
    List<Integer> tempList = new ArrayList<Integer>();
    for(Integer num : list){
    int index = list.indexOf(num);
    if((index+1)%3==0){
    tempList.add(num);
    System.out.println("num="+num);
    }
    }
    list.removeAll(tempList);
    printNum(list);
    }
    }
      

  2.   

    约瑟夫环问题,详见百度百科,如果想体现思想,建议自己用链表实现(因为大公司的笔试和面试的是绝对不允许用Java的集合框架的)。