栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

php编程

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

php编程

分糖果

10个小孩围成一圈。老师分个

1:10块糖

2:2块

3:8块

4:22块

5:16快

6:4块

7:10块

8:6块

9:14块

10:20块


然后所有的的小孩同时把手中的糖分一半给右边的小孩。糖块为奇数的可向

老师要一块。经过几次后手中的糖的块数一样多。每人各几块糖

header("Content-Type: text/html; charset=utf-8");

?>

    $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

            echo $arr[$mm].' ';

        }

        echo '
';

        //return $arr;

        if( isSame($arr) == 1 ) $true = 1;//判断一样的时候

        //echo $true;

           

    }

       

    echo '分糖分了'.$times.'次
';

    echo '每个小孩最后分到的糖是:'.$arr[0];

       

       

       

?>

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/229700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号