<?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
                    相关解决方案
                
                - 关于“面向对象”的有关问题~请高手们指教
 - java软件工程师学php -14. 面向对象
 - js-面向对象(自个儿总结版)
 - JS 面向对象 承继与重写
 - JavaScript 学习札记十三 面向对象
 - 关于 javascript 的 面向对象 有关问题 糊涂
 - new GirlFriend() 吐槽 面向对象,该如何处理
 - 面向对象,该如何解决
 - 谈谈你对“面向对象”的高见?解决方案
 - C#面向对象 类的打包
 - php+mysql 面向对象 增删改查,该如何解决
 - java软件工程师学php -14. 面向对象
 - 面向对象:大夫与病人
 - 数往知来C#面向对象〈3〉
 - 二、C#面向对象:封装、继承、多态、String、集合、文件(上)
 - 三、C#面向对象:封装、继承、多态、String、集合、文件(下)
 - 一直没有搞明白[面向对象],帮忙看看这个算不算
 - C#小小小结(面向对象)
 - 1.面向对象
 - Python入门基础第十五课--面向对象
 - 【C#】面向对象(18)——C#面向对象知识点汇总
 - 【C#】面向对象(15)——TextBox
 - 【C#】面向对象(13)——第一个Windows程序,WinForm概念
 - 【C#】面向对象(12)——索引器
 - 【C#】面向对象(11)——命名空间
 - 【C#】面向对象(10)——常量与静态成员
 - 【C#】面向对象(9)——异常与异常处理
 - 【C#】面向对象(8)——对象的隐式转换和显式转换
 - 【C#】面向对象(7)——类的继承和组合
 - 【C#】面向对象(6)——构造函数