您的位置:首页 > 编程语言 > Java开发

约瑟夫环算法问题

2013-09-07 21:53 190 查看
约瑟夫环是一个数学的应用问题:已知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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 java