1 Star 0 Fork 0

Paul / BasicAlgorithmsDemo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
3_DrinkingBottle_v2.php 1.55 KB
一键复制 编辑 原始数据 按行查看 历史
<?php
/**
* 喝汽水问题:共有1000瓶汽水,每喝完后一瓶得到的一个空瓶子,每3个空瓶子又能换1瓶汽水,喝掉以后又得到一个空瓶子,问总共能喝多少瓶汽水,最后还剩余多少个空瓶子?
*
* 第二种思路:一次把所有的汽水喝完,获得所有的空瓶子,再全部换成汽水,然后再一次全部喝完,再获得所有的空瓶子,依次类推,直到没有汽水可喝为止
*
* 在该代码中,每次喝掉所有的汽水,也就是num瓶,则喝掉的总瓶数每次增加num,因为每次都可能剩余空瓶子(不足3个的),则总的空瓶子数量是上次空瓶子数量加上本次喝掉的num瓶。接着是兑换汽水,则每次可以兑换的汽水数量是空瓶子的数量的1/3,注意这里是整数除法,而本次兑换剩余的空瓶子数量是原来的空瓶子数量减去兑换得到汽水数量的3倍,这就是一次循环所完成的功能,依次类推即可解决该问题
*/
// 汽水数量
$num = 1000;
// 喝掉的汽水数量
$drink_num = 0;
// 空瓶子的数量
$empty_num = 0;
// 如果还有汽水可以喝
while ($num > 0) {
// 喝掉所有的汽水
$drink_num += $num;
// 空瓶子数量等于上次剩余的加上这次喝掉的数量
$empty_num += $num;
// 兑换的汽水数量
$num = intval(floor($empty_num / 3));
// 本次兑换剩余的空瓶子数量
$empty_num -= $num * 3;
}
echo "喝掉的汽水数量为: " . $drink_num . PHP_EOL;
echo "剩余的空瓶子数量为: " . $empty_num . PHP_EOL;
PHP
1
https://gitee.com/paultest/php_basic_algorithms.git
git@gitee.com:paultest/php_basic_algorithms.git
paultest
php_basic_algorithms
BasicAlgorithmsDemo
master

搜索帮助