<?php //用面向对象的方法写 将猴子选大王实现 同样数3退1 class Monkey { /** * 定义猴子类 * 属性 编号 $id * 左手 $left 表示的当前猴子左边的猴子 * 右手 $right 表示的当前猴子右边的猴子 */ public $id; public $left; public $right; } class Circle{ /** * 定义圈类 * 属性 猴子的总数 $ct * 开始的猴子 $first * 结束的猴子 $last */ public $ct = 0; public $first; public $last; //构造方法创建圈 //参数是猴子的个数 function __construct($c){ for($i=0;$i<$c;$i++){ $this->add(); } } //猴子的添加方法 function add(){ $m = new Monkey(); $m->id = $this->ct; if($this->ct==0){ $this->first = $m; $this->last = $m; $m->left = $m; $m->right = $m; }else{ $this->last->right = $m; $m->left = $this->last; $m->right = $this->first; $this->first->left = $m; $this->last = $m; } $this->ct++; } //猴子的删除方法 function del($m){ if($this->ct <=0){ return; }else if($this->ct == 1){ $this->first = $this->last = null; }else{ $m->left->right = $m->right; $m->right->left = $m->left; if($m == $this->first){ $this->first = $m->right; }else if($m == $this->last){ $this->last = $m->left; } } $this->ct--; } } /* 这里的代码就是实现让500只猴子围城一圈然后 数三个退一个就这样直到还剩一个把那猴子的编号打印出来 */ $circle = new Circle(500); $number = 0; $mk = $circle->first; while($circle->ct > 1){ $number++; if($number == 3){ $number = 0; $circle->del($mk); } $mk = $mk->right; } echo $circle->first->id;?>
详细解决方案
PHP数三退1面向对象的写法
热度:21 发布时间:2016-04-28 23:37:44.0
相关解决方案
- 关于“面向对象”的有关问题~请高手们指教
- jquery 面向对象 兑现 极客公园的 回到顶部 效果
- java软件工程师学php -14. 面向对象
- jquery 面向对象 兑现 极客公园的 回到顶部 效果
- js-面向对象(自个儿总结版)
- 轻松拿上JavaScript(二)――面向对象
- JS 面向对象 承继与重写
- JavaScript 学习札记十三 面向对象
- 关于 javascript 的 面向对象 有关问题 糊涂
- new GirlFriend() 吐槽 面向对象,该如何处理
- Java系列学习(7)-面向对象
- 哪位高手能告诉小弟我 面向对象 如何理解
- 面向对象,该如何解决
- 谈谈你对“面向对象”的高见?解决方案
- C#面向对象 类的打包
- PHP - 面向对象
- php+mysql 面向对象 增删改查,该如何解决
- php+mysql 面向对象 容易查询表的信息
- java软件工程师学php -14. 面向对象
- 面向对象:大夫与病人
- 数往知来C#面向对象〈3〉
- 二、C#面向对象:封装、继承、多态、String、集合、文件(上)
- 三、C#面向对象:封装、继承、多态、String、集合、文件(下)
- 一直没有搞明白[面向对象],帮忙看看这个算不算
- C#小小小结(面向对象)
- Python进阶_I/O进阶学习笔记_1.抽象、面向对象、
- 1.面向对象
- java 面向对象:一个标准学生类的代码及测试
- Python笔记-面向对象
- Python-开发之路-面向对象-进阶