首页 > 开发 > PHP > 正文

php猴子选大王问题解决方法

2024-05-04 23:35:10
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php猴子选大王问题解决方法,其本质为约瑟夫环问题,这里提供了一种较为简单的解决方法,需要的朋友可以参考下

本文实例讲述了php猴子选大王问题解决方法。分享给大家供大家参考。具体分析如下:

问题描述:

一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,

输出最后那个大王的编号。

解决方法:

 

 
  1. <?php 
  2. function king($m$n) { 
  3. for($i = 1;$i < $m + 1;$i++) { 
  4. //构建数组 
  5. $arr[] = $i
  6. $i = 0;//设置数组指针 
  7. while (count($arr) > 1) { 
  8. //遍历数组,判断当前猴子是否为出局序号, 
  9. //如果是则出局,否则放到数组最后 
  10. if (($i + 1) % $n == 0) { 
  11. unset($arr[$i]); 
  12. else { 
  13. array_push($arr$arr[$i]); 
  14. //本轮非出局猴子放数组尾部 
  15. unset($arr[$i]); 
  16. //删除 
  17. $i++; 
  18. return $arr
  19. var_dump(king(100,5)); 
  20. ?> 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表