五百战俘问题
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); } }
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#中的递归APS和CPS模式详解
- C#冒泡法排序算法实例分析
- WinForm实现按名称递归查找控件的方法
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- C#中的尾递归与Continuation详解
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析