一个面试题
2014-03-14 14:48
211 查看
一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号:
$m = 13; $n = 20; $j = 0; $monkey = array(); for($i = 0; $i < $n; $i++) //给猴子编号,下标从零开始 { $monkey[$i] = $i; } echo getking($monkey,$m); function getking($arr,$m) //一个递归程序 { $arr = array_values($arr); if(count($arr) == 1) { return $arr[0]; } else { if(count($arr) >= $m) { unset($arr[$m-1]); } else { unset($arr[($m%count($arr))-1]); } return getking($arr,$m); } }
相关文章推荐
- 华为(2007年3月)一道面试题: c语言判断一个正整数, 是否是一个对称数
- 招聘一个靠谱的 iOS(含面试题)
- 面试题:题目: 链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5
- C++面试题:两个队列实现一个栈
- 据说是淘宝面试题“给定一个数组将大于0的放在最右边,等于0的放在中间,大于0的放在最左边”
- 面试题-求一个数的二进制数中1的个数
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- 【转】一个fork的面试题
- 今天做的一个SQL面试题,用到了HAVING语句来限制函数关系
- 面试题:一个短小强悍的C++面试题---违背Effective C++的条款37:绝不重新定义继承而来的缺省参数值
- 一道面试题:有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。
- 算法面试题:一个数出现一次,其他数出现N次
- 一个关于多线程的面试题,网上大多给了错误的答案
- 一个区分度很大的iOS面试题
- [PHP基础] 分享一个PHP经典面试题
- 面试题——找出1000个连续数中出现的一个重复数
- 一个关于String.valueof()的面试题
- [C语言常见面试题]查询一个字符串中第一个只出现一次的字符,要求时间复杂度为O(1)
- 用冒泡的思想做一个面试题 ,第一个最大,第二个最小,第三个第二大,第四个第二小,以此类推
- 笔试题&面试题:找出一个数组中第m小的值并输出