换瓶盖问题

阅读: 评论:0

换瓶盖问题

换瓶盖问题

问题:你有k瓶可乐,兑换规则为每a个瓶盖可以换一瓶可乐,问总共可以和多少瓶可乐?

 

方法一:数学方法

a个瓶盖换一瓶可乐:

相当于可以用a-1个瓶盖,兑换一瓶无盖的可乐;

例如a为3的时候,当有(3-1)个瓶盖的时候,可以向商家‘借’一个瓶盖凑齐3个满足了规则换来一瓶可乐,然后将瓶盖还给商家。

 

那么结果是不是 k/(a-1)呢?不对

假设 x%(a-1) == 0,则最后一个(a-1)不能兑换一个没盖子的可乐,需要a个才能换一个没盖子的可乐。因为这个交换本质上是“透支的”,而这个交换只有在剩余的盖子数大于a的时候才能进行,所以最后一次交换至少剩余一个盖子,所以最后一个盖子本质上没有用;

 

因此

 

可以喝 a + (a-1)/(k-1);

 

 

方法二:循环写法

    // 可乐换瓶盖;共有 n 元钱, 每瓶m元,每k个瓶盖兑一瓶;public static int exchange(int n, int m, int k){// 开始不换一共能喝first瓶int first = n / m;int total = first;// 开始用first个盖子进行兑换while (first > k){// first个盖子能换second瓶int second = first / k;// 计入总数total += second;// 用seconde个盖子继续上述流程first = second;}return total;}

 

本文发布于:2024-01-31 02:40:12,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664001424753.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:瓶盖
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23