PHP猴子选大王通俗理解

点击查看 王琦的个人博客 记录一些知识分享一些心得
php猴子选大王的代码。
2015 8.24 0:46

1	function getKing($m,$n){
2		$arr = array();            //定义一个存放猴子的数组;
3		$a = "a";                  //定义猴子编号;
4		for($i=0;$i<$m;$i++){      //开始循环给每个猴子附上编号;
5			$arr[] = $a++;         //循环a到M(给出猴子的数量);
6		}  
7		
8		$i = 0;                    //定义一个报数的变量;
9		while(count($arr)>1){      //获取猴子个数,只要猴子不小于1就一直循环
10			if($i%$n == 0){        //报的数对N取余(设定的数,报道几就对几取余,余数为0,则那只猴子被提出游戏)
11				unset($arr[$i]);   //删除余数为零的数组元素
12			}else{
13				$arr[] = $arr[$i]; //如果为0则删除数组元素,否则没被删除的,则增加至队尾,下一轮继续报数,
14				unset($arr[$i]);   //删除数组刚才添加的那个数组元素,抽象理解为 : 需要的数例如为5,1 2 3 4 号位的猴子没有报道,则添加 
16			}                      //1 2 3 4为队尾,下轮继续,而5号位的猴子正好报道5,被提出游戏,6号位的猴子从1开始报,反复如此,
17			$i++;
18		}
19		return $arr;
20	 }
21	 print_r(getKing(20,5));
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值