一个游戏的解答
游戏:span style=color:#000000;font-family:lucida Grande, Verdana;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:23px;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transf
游戏:
一场作战中,64个人被捉住了,敌方决定按一种方式处理他们,最后剩下的那个人可以活命。该方式为:给所有人编数字号,然后围成一个圈,先杀一号,每隔一个杀一人,直至只剩下一人。杰克果断站在了一个位置上,并最终成功活了下来,请问,他是几号?
<?php
$arr = array();
// 初始化
for ($i = 1; $i <= 64; $i ++) {
$j = ($i == 1) ? 64 : ($i - 1);
$k = ($i == 64) ? 1 : ($i + 1);
$arr['p' . $i] = array($j, $k);
}
// 开始Kill
$i = 1;
while (count($arr) > 1) {
$p = $arr['p' . $i];
unset($arr['p' . $i]);
$j = $p[0];
$k = $p[1];
$arr['p' . $j][1] = $k;
$arr['p' . $k][0] = $j;
$i = $arr['p' . $k][1];
}
// 看看还剩谁
print_r($arr);
// 结果:64
?>
- 上一篇:转义 javascript 代码标记 函数
- 下一篇:用Pear Mail发邮件
精彩图集
精彩文章






