小学题:啤酒2块1瓶,4个盖换1瓶,2个空瓶换1瓶,10块可以喝几瓶?

小学题:啤酒2块1瓶,4个盖换1瓶,2个空瓶换1瓶,10块可以喝几瓶?

<?php
/**
 * 小学题:啤酒2块1瓶,4个盖换1瓶,2个空瓶换1瓶,10块可以喝几瓶?
 * @param  number $money 多少钱
 * @return int
 */
function getNumber($money){
    $a = 2; //啤酒价格
    $b = 0; //已经买了的酒数量
    $c = 4; //多少个盖子换一瓶
    $d = 2; //多少个空瓶子换一瓶
    $e = 0; //有多少个盖子
    $f = 0; //有多少个空瓶

    $b = (int) ($money / $a);  // 一开始买了多少瓶
    $e = $b;
    $f = $b;

    // 开始循环换盖子和空瓶子
    while( $e >= $c || $f >= $d) {
        // 换盖子
        if ($e >= $c) {
            $e -= $c;
            $b++;
            $e++;
            $f++;
        }

        // 换瓶子
        if ($f >= $d) {
            $f -= $d;
            $b++;
            $e++;
            $f++;
        }
    }

    return array('RMB' => $money, '啤酒数量' => $b, '剩余瓶盖数量' => $e, '剩余空瓶数量' => $f);
}

$rs = getNumber(10);
print_r($rs);
?>

返回结果:

Array
(
    [RMB] => 10
    [啤酒数量] => 15
    [剩余瓶盖数量] => 3
    [剩余空瓶数量] => 1
)
赞 (4)
分享到:更多 ()

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. indiboy2 - 2/4 - 2/2 =实际价格 [哈哈]回复