有500个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
来源:百度知道 编辑:UC知道 时间:2024/06/19 08:30:24
import java.util.LinkedList;
class removeNM {
public static int removeNM(int n, int m) {
LinkedList ll = new LinkedList();
for (int i = 0; i < n; i++)
ll.add(new Integer(i + 1));
System.out.println(ll);
int removed = -1;
while (ll.size() > 1) {
removed = (removed + m) % ll.size();
ll.remove(removed--);
}
return ((Integer) ll.get(0)).intValue();
}
public static void main(String[] args) {
System.out.println(removeNM(500, 3));
}
}
//利用对象和递归 (结果436)
import java.util.ArrayList;
public class T {
public static void main(String[] arg){
//人数=500,出局者在3次之后
b(500,3); //利用对象
c(500,3); //递归算法
}
//利用对象
private static void b(int count,int out) {
ArrayList<Child> l = new ArrayList<Child>()