国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP實現約瑟夫環

2019-11-06 06:36:45
字體:
來源:轉載
供稿:網友

題目:有17個人圍成一圈(編號0~16),從第0號的人開始從1報數,凡報到3的倍數的人離開圈子,然后再數下去,直到最后只剩下一個人為止,問此人原來的位置是多少號?

思想:1.設定數組,把這些人按照編號存入數組,且加一個標記位,0代表沒有被移出,1代表移出。

           2.執行無限循環,在每一次循環中,對整個數組進行遍歷,判斷每個數組元素的標記為是否為0,如果為0則繼續報數,如果此數能被3整除,該數組元素標記位設為1,并且移出的總人數+1。當移出總人數達到16人,則break退出無限循環,剩下的為勝者。

代碼:

<?php$person = array(    array("0",0),    array("1",0),    array("2",0),    array("3",0),    array("4",0),    array("5",0),    array("6",0),    array("7",0),    array("8",0),    array("9",0),    array("10",0),    array("11",0),    array("12",0),    array("13",0),    array("14",0),    array("15",0),    array("16",0),);    //報數    $j = 0;    //移出位人數    $num = 0;        //執行循環        while(1)        {            //遍歷整個數組            for($k=0;$k<17;$k++)            {                //如果此數組元素沒有移出位                if($person[$k][1]==0)                {                    //此數組元素繼續報數                    $j=$j+1;                    //如果報的數能被3整除                    if($j%3==0)                    {                        //此數組元素標記移出位                        $person[$k][1]=1;                        //出位人數+1                        $num=$num+1;                    }                }            }            //如果出位人數達到16人,則最后一人獲勝,退出循環            if($num==16)            {                break;            }        }      var_dump($person) ;?>

結果:

array (size=17)  0 =>     array (size=2)      0 => string '0' (length=1)      1 => int 1  1 =>     array (size=2)      0 => string '1' (length=1)      1 => int 1  2 =>     array (size=2)      0 => string '2' (length=1)      1 => int 1  3 =>     array (size=2)      0 => string '3' (length=1)      1 => int 1  4 =>     array (size=2)      0 => string '4' (length=1)      1 => int 1  5 =>     array (size=2)      0 => string '5' (length=1)      1 => int 1  6 =>     array (size=2)      0 => string '6' (length=1)      1 => int 1  7 =>     array (size=2)      0 => string '7' (length=1)      1 => int 1  8 =>     array (size=2)      0 => string '8' (length=1)      1 => int 1  9 =>     array (size=2)      0 => string '9' (length=1)      1 => int 1  10 =>     array (size=2)      0 => string '10' (length=2)      1 => int 0  11 =>     array (size=2)      0 => string '11' (length=2)      1 => int 1  12 =>     array (size=2)      0 => string '12' (length=2)      1 => int 1  13 =>     array (size=2)      0 => string '13' (length=2)      1 => int 1  14 =>     array (size=2)      0 => string '14' (length=2)      1 => int 1  15 =>     array (size=2)      0 => string '15' (length=2)      1 => int 1  16 =>     array (size=2)      0 => string '16' (length=2)      1 => int 110號位的人為所求解


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣化县| 惠安县| 西昌市| 静海县| 疏附县| 赣州市| 吉水县| 凤翔县| 肇庆市| 大兴区| 新巴尔虎右旗| 永昌县| 乌拉特前旗| 陇南市| 策勒县| 壶关县| 平原县| 常山县| 文安县| 东乌珠穆沁旗| 林西县| 正安县| 石城县| 聂拉木县| 建水县| 通许县| 新乐市| 通城县| 兰州市| 朝阳区| 永定县| 达州市| 囊谦县| 武邑县| 历史| 苗栗县| 大荔县| 尤溪县| 阿瓦提县| 临清市| 荣成市|