package jframe.view;
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
Circle c = new Circle();
c.setLee(6);
c.setK(3);
c.setM(3);
c.createFirst();
c.show();
c.play();
}
}
class Child{
int no;
Child nextChild;
public Child(int no){
this.no = no;
}
}
class Circle{
Child firstChild = null;
int lee;
Child temp = null;
int k = 0;
int m = 0;
public void setM(int m){
this.m = m;
}
public void setK(int k){
this.k = k;
}
public void setLee(int lee){
this.lee=lee;
}
public void play(){
Child temp = this.firstChild;
//先找到开始的k值
for(int i=1;i<k;i++){
temp = temp.nextChild;
}
while(this.lee!=1){
//从k开始数m下
for(int j=1;j<m;j++){
temp = temp.nextChild;
}
//将m的小孩删除去
Child temp2 = temp;
while(temp2.nextChild!=temp){
temp2 = temp2.nextChild;
}
temp2.nextChild = temp.nextChild;
temp = temp.nextChild;
lee--;
}
System.out.println("输出:"+temp.no);
}
public void createFirst(){
for(int i = 1;i<=lee;i++){
if(i==1){
Child ch = new Child(i);
this.firstChild = ch;
this.temp = ch;
}else if(i<lee){
Child ch = new Child(i);
temp.nextChild = ch;
this.temp = ch;
}else{
Child ch = new Child(i);
temp.nextChild = ch;
this.temp = ch;
temp.nextChild = this.firstChild;
}
}
}
public void show(){
Child temp = this.firstChild;
int i = 0;
while(i<lee){
System.out.print(temp.no+" ");
temp = temp.nextChild;
i++;
}
}
}