PHP 练习题一参考答案

问题一参考答案:

有很多盒子和很多个球,盒子编号从 0 开始往后顺序递增,每个盒子都装一样数量的球。球在一个盒子里面装完,就装下一个盒子。球的编号按照盒子的编号顺序,也从 0 开始往后顺序递增。

/**
 * [boxBall description]
 * @param  [type]  $ballNum    [球的数量]
 * @param  integer $boxBallNum [每个盒子里面装几个球,默认为:20]
 * @param  integer $box        [盒子数量,默认从 0 开始]
 * @return [type]              [description]
 */
function boxBall($ballNum,$boxBallNum=20,$box=0){

    //定义数组
    $data = array();

    //循环球数
    for ($i=0; $i < $ballNum; $i++) { 
    
        //floor() 函数向下舍入为最接近的整数。
        //floor($i / $boxBallNum) $i / $boxBallNum 取整,得出使用第几个盒子
        $data[floor($i / $boxBallNum)] .= $i.',';

    }

    //将上面循环后的数组再次循环
    for ($i=0; $i < count($data); $i++) { 

        //将每个盒子的球数值添加key值;每个盒子的key从0开始
        //$data[$i]再次赋值回当前的盒子
        $data[$i] = explode(',',rtrim($data[$i],','));

    }

    //将数组进行输出
    return $data;

}

print_r(boxBall(52,10));

问题二参考答案:

如果每个盒子装 A 个球,在编号为 B 的盒子里面,第一个球的编号和最后一个球的编号用 A 和 B 表达出来。

//1.每个盒子装 A 个球;假设 A = 10;
//2.假设 B 的盒子为 2;
//取出 B 的第一个球和最后一个球

//假设有 3 个盒子,每个盒子里面都装有 A 个球
$data = array(
        0 => array(0 => 0,1 => 1,2 => 2,3 => 3,4 => 4,5 => 5,6 => 6,7 => 7,8 => 8,9 => 9),
        1 => array(0 => 10,1 => 11,2 => 12,3 => 13,4 => 14,5 => 15,6 => 16,7 => 17,8 => 18,9 => 19),
        2 => array(0 => 20,1 => 21,2 => 22,3 => 23,4 => 24,5 => 25,6 => 26,7 => 27,8 => 28,9 => 29)
    );

//current()函数返回数组中的当前元素的值。
print_r(current($data[2]));
echo '<br>';
//end()将内部指针指向数组中的最后一个元素,并输出。
print_r(end($data[2]));

问题三参考答案:

如果每个盒子装 A 个球,那么编号为 C 的球,它所在的盒子编号是什么,用 A 和 C 表达出来。

//1.每个盒子装 A 个球;假设 A = 10;
//2.假设编号 C 的球为 23

$a = 10;

$c = 23;

//用球的编号数除每个盒子装的球数,然后取整;得出编号C的球在哪个盒子
print_r(floor($c / $a));

以上的答案为参考答案,有更好的答案可以私信我喔!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值