数3退1(面向对象思想)
来源:互联网 发布:淘宝导入视频 编辑:程序博客网 时间:2024/06/14 10:11
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--;
}
}
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--;
}
}
- 数3退1(面向对象思想)
- PHP数3退1面向对象的写法(猴子选大王)
- 数3退1
- 数3退1
- 数3退1
- 面向对象的思想1
- java面向对象思想1
- java代码面向对象实现:500人围成一圈,数3退一,求最后留下的人的最初位置
- 面向对象编程的思想(3)
- 经典的文章----面向对象思想 1
- 面向对象编程的思想(1)
- Java基础--------面向对象思想(1)
- 面向对象思想
- 面向对象程序设计思想
- 基础知识----面向对象思想
- 面向对象核心思想
- 面向对象思想
- 面向对象的思想
- 关于面向对象的解释?
- Linux系统中网络配置详解
- 这个周末
- asp.net(C#) 生成随机验证码
- SMS发送WapPush
- 数3退1(面向对象思想)
- Override? Or Overwrite?
- Linux 开机程序之研讨
- [pascal]对“求1-100之间的所有素数”的三种不同循环结构算法的分析
- Visual Studio2005或在asp.net中常碰到的问题:未能创建Mutex,重新把ASP.NET 2.0注册到IIS中,IIS_WPG的权限
- 读古龙的岁月(四)
- Linux系统文件命令精通指南
- 一个我好喜欢的故事...八尾猫
- Simpson悖论及数据挖掘研究应用