方法二: 面向对象的编程思想
public class Count3Quit2 { public static void main (String [] args){ KidCircle kc= new KidCircle(500); int countNum = 0; Kid k = kc.first; while (kc.count>1){ countNum ++; if(countNum ==3){ countNum =0; kc.delete(k); } k = k.right; } System.out.println(kc.first.id); } } class Kid{ int id; Kid left; Kid right; } class KidCircle{ int count = 0; 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; }else if(k ==last){ last = k.left; } count --; } }
