package main.java;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) throws Exception {
List<people> list = new ArrayList<people>();
for (int i = 0; i < 30; i++) {
list.add(new people(i+1, true));
}
int m = list.size();
int n = 1;
while (m > 15) {
for (int j = 0; j < m; j++) {
if (n % 9 == 0) {
list.get(j).live = false;
n = 1;
} else {
n++;
}
}
for (int j = 0; j < m; j++) {
people p = list.get(j);
if(!p.live){
list.remove(p);
m--;
}
}
}
for (people p : list) {
System.out.printf("%s ", p.no);
}
}
}
class people {
public int no;
public boolean live;
public people(int no, boolean live) {
super();
this.no = no;
this.live = live;
}
@Override
public String toString() {
return "people [no=" + no + ", live=" + live + "]";
}
}
package com.mtb.algorithm.link;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @Description:
* @Author: 毛同彬
* @CreateDate: 2021/10/9 17:10
* @Version: 1.0
*/
public class Josephus {
public static void main(String[] args) {
List<Integer> people = new ArrayList<Integer>();
//初始化30个人
for (int i = 1; i < 31; i++) {
people.add(i);
}
int num = 1;
while (people.size() > 15) {
Iterator<Integer> iterator = people.iterator();
while (iterator.hasNext()) {
int n = iterator.next();
if (num % 9 == 0) {
System.out.println("kill:"+n);
iterator.remove();
}
num++;
}
}
for (Integer person : people) {
System.out.print(person+ " ");
}
}
}
运行结果:
1 2 3 4 10 11 13 14 15 17 20 21 25 28 29