当前位置:  首页  >  PHP教程  >  PHP面试题

php经典面试题:猴王的问题

据说这是新浪的一道面试题,被很多公司和单位转载,比较经典,大家‘亲切’的称之为‘猴王问题’,题目的大概意思如下

 据说这是新浪的一道面试题,被很多公司和单位转载,比较经典,大家‘亲切’的称之为‘猴王问题’,题目的大概意思如下:

        有 一群猴子排成一圈,按1,2,...,n依次编号。

         然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,  再数到第m只,在把它踢出去...,

         如此不停的进行下去,  直到最后只剩下一只猴子为止,那只猴子就叫做大王。

         要求:编程模拟此过程,输入m、n, 输出最后那个大王的编号。

下面提供一种自己认为比较容易理解的解题方法:

 
 
 
 function getKingMonkey($n,$m){ $mOnkey=range(1,$n); //构建猴子数组 $i=0; //遍历猴子数组 while( list($k,$value)=each($monkey)){ if(count($monkey)==1){ echo $value. "是猴王"; exit(); } if(++$i==$m){ echo $monkey[$k].'踢出去'.'
'; unset($monkey[$k]); //把变量 清除 $i=0; //指针归位 } //如果已经数到最后的话 则继续进行下一轮的循环 if(!current($monkey)){ reset($monkey); } } }
内容推荐:免费高清PNG素材下载
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4