php編程 - php分糖果問題

wKiom1LZ21ODFgLwAAKpYWeJU_s050.jpg

分糖果php

10個小孩圍成一圈。老師分個html

1:10塊糖ide

2:2塊htm

3:8塊blog

4:22塊utf-8

5:16快get

6:4塊it

7:10塊io

8:6塊function

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];
      
      
      
?>
相關文章
相關標籤/搜索