php猴子選大王問題解決方法
更新時間:2015年05月12日 11:43:33 作者:vivi
這篇文章主要介紹了php猴子選大王問題解決方法,其本質為約瑟夫環(huán)問題,這里提供了一種較為簡單的解決方法,需要的朋友可以參考下
本文實例講述了php猴子選大王問題解決方法。分享給大家供大家參考。具體分析如下:
問題描述:
一群猴子排成一圈,按1,2,...,n依次編號。然后從第1只開始數(shù),數(shù)到第m只,把它踢出圈,從它后面再開始數(shù),再數(shù)到第m只,在把它踢出去...,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n,
輸出最后那個大王的編號。
解決方法:
<?php function king($m, $n) { for($i = 1;$i < $m + 1;$i++) { //構建數(shù)組 $arr[] = $i; } $i = 0;//設置數(shù)組指針 while (count($arr) > 1) { //遍歷數(shù)組,判斷當前猴子是否為出局序號, //如果是則出局,否則放到數(shù)組最后 if (($i + 1) % $n == 0) { unset($arr[$i]); } else { array_push($arr, $arr[$i]); //本輪非出局猴子放數(shù)組尾部 unset($arr[$i]); //刪除 } $i++; } return $arr; } var_dump(king(100,5)); ?>
希望本文所述對大家的php程序設計有所幫助。
相關文章
深思 PHP 數(shù)組遍歷的差異(array_diff 的實現(xiàn))
深思 PHP 數(shù)組遍歷的差異(array_diff 的實現(xiàn))...2006-06-06