java 算法急救

来源:百度知道 编辑:UC知道 时间:2024/07/05 00:19:59
把100个人 每个人就是从1到100的编号 站成一个圈 然后从1开始数 数到5 把这个人从这个圈里去掉依次类推
圈是首尾相连的
最后留下的人 编号是谁啊

class Kid {
int id;
Kid left,right;
}

class KidCircle {
int count;
Kid first,last;

KidCircle(int n) {
for(int i=0;i<n;i++) {
add();
}
}

void add() {
Kid k = new Kid();
k.id=count;
if(count<=0) {
first=k;
last=k;
k.left=k;
k.right=k;
}
else {
last.right=k;
k.left=last;
k.right=first;
first.left=k;
last=k;
}
count++;
}

void delete(Kid k) {
if(count==0) {
return;
}
else if(count==1) {
first=last=null;
}
else {
k.left.right=k.right;
k.right.left=k.left;
if(k==first) {
first=k.right;
}
if(k==last) {
last=k.left;
}
}
count--;
}
}

public class Count3Quit {<