您好,登錄后才能下訂單哦!
分糖果
10個小孩圍成一圈。老師分個
1:10塊糖
2:2塊
3:8塊
4:22塊
5:16快
6:4塊
7:10塊
8:6塊
9:14塊
10:20塊
然后所有的的小孩同時把手中的糖分一半給右邊的小孩。糖塊為奇數的可向
老師要一塊。經過幾次后手中的糖的塊數一樣多。每人各幾塊糖
<?php header("Content-Type: text/html; charset=utf-8"); /* 分糖果 10個小孩圍成一圈。老師分個 1:10塊糖 2:2塊 3:8塊 4:22塊 5:16快 6:4塊 7:10塊 8:6塊 9:14塊 10:20塊 然后所有的的小孩同時把手中的糖分一半給右邊的小孩。糖塊為奇數的可向 老師要一塊。經過幾次后手中的糖的塊數一樣多。每人各幾塊糖 */ /* $i = array()來存每個小孩手中的糖 */ ?> <?php $arr = array(10,2,8,22,16,4,10,6,14,20);//小孩手中的糖 $times = 0;//分糖字數 //如果小孩的手中糖一樣就停止 //就是判斷相鄰的2個小孩一樣就 +1.如果+到10就說明相等 function isSame($arr){ $shu =0; $b = false; for($j=0;$j< (sizeof($arr)-1) ;$j++){ if($arr[$j] == $arr[$j+1]){ $shu ++; } if($shu == (sizeof($arr)-1)){ $b =true; }else{ $b = false; } //return $shu; } return $b;//判斷是否相等。如果相等就返回1 } $true = 0;//用來判斷糖塊是否一樣默認是不一樣 //echo isSame($arr); while($true <1){ $b =true; $m = $arr[9]; //第10個小孩手中的糖 主要是防止被覆蓋 //第一次分糖后小孩手中的糖的數量 //第2位糖的數量 = 第一位的/2+自己的/2 //第3位糖的數量 = 第2位/+自己的/2 for($n =9;$n>0;$n--){ $arr[$n] = $arr[$n-1]/2 + $arr[$n]/2; } $arr[0] = $m/2 + $arr[0]/2; $times++; for($j =0;$j<10;$j++){ if($arr[$j] %2 != 0){ $arr[$j] +=1; //奇數就要一個糖 } } echo '第'.$times.'次分糖后小孩手中的糖塊'; for($mm=0;$mm<sizeof($arr);$mm++){ echo $arr[$mm].' '; } echo '<br />'; //return $arr; if( isSame($arr) == 1 ) $true = 1;//判斷一樣的時候 //echo $true; } echo '分糖分了'.$times.'次<br />'; echo '每個小孩最后分到的糖是:'.$arr[0]; ?>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。