数三退一问题---php

<?php
  class kid {
   public $left;
   public $right; 
   public $id;
   function __construct($f) {
    $this->id=$f;
   }
 }
 
$num;
$first;
$last;

 function circle ($m,$n) {
  $num=$m;
  for ($i = 1; $i <=$m; $i++) { 
    $k=new kid($i);
    echo"当前的ID为".$k->id."</br>";
    echo "</br>";
 //   print_r($k); echo "</br>";
    if($i==1){
     $first=$last=$k;   
   }elseif($i==2){
    $last=$k;
    $first->left=$last;
     $first->right=$last;  
     $last->left=$first;
     $last->right=$first; 
   //  echo "<pre/>";    
    // print_r($last);  
   }else{
    $last->right=$k;
    $k->right=$first;
    $k->left=$last;
    $first->left=$k;
    $last=$k;
   }
  }
    $flag=1;
    $now=$first;
  while(($now->right)!==$now) {
   if($flag!=$n) {
    $flag++;
   } else {
    $now->left->right=$now->right;
     $now->right->left=$now->left;   
     $flag=1;  echo $now->id."号退出!</br>";
   }
   $now=$now->right;   
  }
  echo "最后的人的ID为:$now->id";
 }
 circle(12,3);

?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值