My personal summary of the code for the monkey to choose the king, with comments attached, will be very helpful to beginners, because when I learned this, it took me two or three hours to understand it! Of course the code is ever-changing! I have seen a more concise one before, written in 5-6 lines. This varies from person to person, so beginners should take it step by step!
2015 8.24 0:46
<code><span>1</span><span><span>function</span><span>getKing</span><span>(<span>$m</span>,<span>$n</span>)</span>{</span><span>2</span><span>$arr</span> = <span>array</span>(); <span>//定义一个存放猴子的数组;</span><span>3</span><span>$a</span> = <span>"a"</span>; <span>//定义猴子编号;</span><span>4</span><span>for</span>(<span>$i</span>=<span>0</span>;<span>$i</span><<span>$m</span>;<span>$i</span>++){ <span>//开始循环给每个猴子附上编号;</span><span>5</span><span>$arr</span>[] = <span>$a</span>++; <span>//循环a到M(给出猴子的数量);</span><span>6</span> } <span>7</span><span>8</span><span>$i</span> = <span>0</span>; <span>//定义一个报数的变量;</span><span>9</span><span>while</span>(count(<span>$arr</span>)><span>1</span>){ <span>//获取猴子个数,只要猴子不小于1就一直循环</span><span>10</span><span>if</span>(<span>$i</span>%<span>$n</span> == <span>0</span>){ <span>//报的数对N取余(设定的数,报道几就对几取余,余数为0,则那只猴子被提出游戏)</span><span>11</span><span>unset</span>(<span>$arr</span>[<span>$i</span>]); <span>//删除余数为零的数组元素</span><span>12</span> }<span>else</span>{ <span>13</span><span>$arr</span>[] = <span>$arr</span>[<span>$i</span>]; <span>//如果为0则删除数组元素,否则没被删除的,则增加至队尾,下一轮继续报数,</span><span>14</span><span>unset</span>(<span>$arr</span>[<span>$i</span>]); <span>//删除数组刚才添加的那个数组元素,抽象理解为 : 需要的数例如为5,1 2 3 4 号位的猴子没有报道,则添加 </span><span>16</span> } <span>//1 2 3 4为队尾,下轮继续,而5号位的猴子正好报道5,被提出游戏,6号位的猴子从1开始报,反复如此,</span><span>17</span><span>$i</span>++; <span>18</span> } <span>19</span><span>return</span><span>$arr</span>; <span>20</span> } <span>21</span> print_r(getKing(<span>20</span>,<span>5</span>)); </code>
Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.
The above introduces the popular understanding of PHP Monkey King, including various aspects. I hope it will be helpful to friends who are interested in PHP tutorials.