当前位置:编程学习 > JAVA >>

新手 求一个解决方法

任意人数的一排人,报数,一二三,报到三的人出列,然后继续一二三报数,到队尾最后一人时,再从队列的开始处继续,直到只剩下两个人,要求打印出出列的人的序号 
 纠结了好久都没想出来  求大神赐教 --------------------编程问答-------------------- 又见 约瑟夫环 你百度吧 各种解法都有 --------------------编程问答-------------------- --------------------编程问答-------------------- 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);
}
} --------------------编程问答-------------------- 约瑟夫环问题,详见百度百科,如果想体现思想,建议自己用链表实现(因为大公司的笔试和面试的是绝对不允许用Java的集合框架的)。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,