您的位置:首页 > 其它

五百战俘问题

2015-08-25 19:13 288 查看
import java.awt.List;
import java.util.Iterator;
import java.util.LinkedList;

public class Prisoner {

public static void main(String[] args) {
fiveH();
}

public static void fiveH(){
LinkedList<Integer> linkedList = new LinkedList<Integer>();

for(int i = 1; i <= 500; i++){
linkedList.add(i);
}

System.out.println(kill(linkedList, 0));
}

public static int kill(LinkedList<Integer> linkedList, int first){
if(linkedList.size() == 1) return linkedList.getFirst();
if(linkedList.size() == 2) {
System.out.println(linkedList.get(0) + " " + linkedList.get(1));
linkedList.remove(first%2);
}
else {
int killed = 0;
for(int i = 0; i < linkedList.size() + killed; i++){
first++;
if(first%3 == 0){
System.out.println("kill:" + linkedList.get(i - killed));
linkedList.remove(i - killed);
killed++;
}
}
}

return kill(linkedList, first%3);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息