回收饮料瓶问题

发布 : 2017-06-08 分类 : IT 浏览 :

如x=10,y=2时,

  • 第一次喝10瓶,得到10个空瓶,换5瓶
  • 第二次喝5瓶,得到5个空瓶,换2瓶,剩1个空瓶
  • 第三次喝2瓶,得到2个空瓶,加上之前剩的共3个空瓶,换1瓶,剩1个空瓶
  • 第四次喝1瓶,得到1个空瓶,加上之前剩的共2个空瓶,换1瓶
  • 第五次喝1瓶,得到1个空瓶,没的换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function getTotalNum($num,$step)
{
$total = $num;
$left = 0;
while ($num >= $step) {
$left = $num % $step; //记录没有兑换的空瓶
$num = floor($num/$step);
$total += $num;
$num += $left; //将没有兑换的空瓶放到喝剩下的空瓶一起
}
return $total;
}
echo getTotalNum(10,2);//19
echo getTotalNum(20,3);//29
本文作者 : 小凡
原文链接 : https://16bh.github.io/2017/06/08/recycle-bottle-algorithm/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
留下足迹