约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
import java.util.LinkedList;
import java.util.List;
public class Yuesefuhuan {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(getLuckNum(4));
}
private static int getLuckNum(int i) {
List<Integer> list = new LinkedList<Integer>();
for (int j = 1; j < =i; j++) {
list.add(j);
}
int count = 1;
for (int j = 0; list.size()!=1; j++) {
if(j ==list.size()){
j =0;
}
if(count%3==0){
list.remove(j--);
}
count++;
}
return list.get(0);
}
}