第05章 数组 12 练习 10
2012-08-20 23:57
288 查看
鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!(2012.8.23)
注:23号回学校,提前补这一天!
小练习:
500个人,一个人开始数,1,2,3,1,2,3.。。是3的人退出,一直循环都最后一个人,这个人是第几个人?(面向对象的解法)(完整代码)
注:23号回学校,提前补这一天!
小练习:
500个人,一个人开始数,1,2,3,1,2,3.。。是3的人退出,一直循环都最后一个人,这个人是第几个人?(面向对象的解法)(完整代码)
//Count3Quit2.java 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; Kid 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.right.left = k.left; k.left.right = k.right; if(k == first) { first = k.right; }else if(k == last) { last = k.left; } } count--; } }
相关文章推荐
- 第05章 数组 10 练习8
- 第05章 数组 14 练习 12
- 第05章 数组 03 练习1
- thinking in java test5.5练习(10)(11)(12)finalize()方法
- 第05章 数组 04 练习2
- 第05章 数组 11 练习9
- thinking in java test5.5练习(10)(11)(12)finalize()方法
- 第05章 数组 05 练习3
- JAVA程序设计(10)-----保龄球积分程序 说的是练习数组 其实完全就是个坑爹的数学题…………
- [iOS]C语言技术视频-12-指针变量练习二(数组打印)
- 第05章 数组 06 练习4
- 第05章 数组 07 练习5
- 第05章 数组 13 练习 11
- 第05章 数组 08 练习6
- 第05章 数组 09 练习7
- C#练习记录(请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。Math.Round())
- 在一个长度为10的整形数组中,前9个元素是{12,23,34,45,56,67,78,89,90}。 现在要求输入一个整数,把它放到数组中正确的位置当中。(不能删除已有元素)
- Linux_C练习:编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12;
- 第6章_数组_编程练习_Exercise6_25(二维数组的相乘)
- (12)21.2.5 并发 练习 6