【手把手带你刷好题】——25.换酒问题(模拟、思维)

简介: 换酒问题

【前言】

今天是刷题打卡第25天!

美好的一天从刷题开始,加油啦!


原题:换酒问题(模拟、思维)

题目描述:

小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。

如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。

请你计算最多能喝到多少瓶酒。

示例1:

输入:numBottles = 9, numExchange = 3
输出:13
解释:你可以用 3 个空酒瓶兑换 1 瓶酒。
所以最多能喝到 9 + 3 + 1 = 13 瓶酒。

示例2:

输入:numBottles = 15, numExchange = 4
输出:19
解释:你可以用 4 个空酒瓶兑换 1 瓶酒。
所以最多能喝到 15 + 3 + 1 = 19 瓶酒。

思路:

如果有b 瓶酒,并且规定e 个空瓶换一瓶酒,首先我们一定可以喝到 b 瓶酒,剩下 b 个空瓶。接下来我们可以拿瓶子换酒,每次拿出 e 个瓶子换一瓶酒,然后再喝完这瓶酒,得到一个空瓶。以此类推,我们可以统计得到答案。

代码执行:

int numWaterBottles(int numBottles, int numExchange){
    int bottle = numBottles;//空瓶子的数量
    int ans = numBottles;//总共喝的酒
    while(bottle >= numExchange)//空瓶子只要大于numExchange,循环就要继续
    {
        bottle -= numExchange;
        ans++;
        bottle++;
    }
    return ans;
}

结语

今天是刷题打卡第25天!

加油啦,不负韶华!

 

相关文章
|
6月前
|
存储 人工智能 算法
【冲击蓝桥篇】动态规划(上):真题实战+思路解析
【冲击蓝桥篇】动态规划(上):真题实战+思路解析
刷爆LeetCode!字节技术官亲码算法面试进阶神技太香了
正赶上金三银四,说到数据结构与算法这个词,肯定有不少人会眉头一皱。也不知从什么时候开始,以字节为主的一大波公司面试开始了对算法的连环拷问。如果事前没有系统地刷一波题的话,算法这一关还是比较难过
|
算法 搜索推荐
谈一谈|对小白学习算法的建议
谈一谈|对小白学习算法的建议
86 0
|
算法 C++
【每日算法Day 75】字节跳动面试题:手撕困难题,看过我Day 71的人都会做了!
【每日算法Day 75】字节跳动面试题:手撕困难题,看过我Day 71的人都会做了!
100 0
|
存储 算法
课外闲谈9.谈一谈分治法和在线处理等常见方法
将整个问题分解成若干个小问题后再分而治之。如果觉得得到的子问题的规模还是太大,那就继续分解,直到得到的子问题规模达到要求。必要时逐步合并这些子问题的解,从而得到问题的解。
89 0
|
机器学习/深度学习 人工智能 算法
蓝桥杯最后一天复习?各大算法四步法教你轻松秒杀各种题型
大家好,我是泡泡,距离蓝桥杯还有一天时间,我们一定要把握住最后的时间,跟着我,把全部的题型复习整理一遍,让自己不再迷茫不自信,AK蓝桥!
237 0
蓝桥杯最后一天复习?各大算法四步法教你轻松秒杀各种题型
|
算法 搜索推荐
【算法实践】有始有终,雨露均沾--手把手带你手撸选择排序
选择排序是一个非常经典且简单直观的排序算法,无论什么数据进去都是 O(n^2) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。其排序时,元素交换次数最差的情况为n−1次。选择排序的原理是先固定每个元素的位置,在序列中找到最小的元素,将这个元素与第一个元素交换位置,其次是除去第一个元素,找到剩余序列中最小的元素,与第二个元素交换位置,以此类推,直到所有的元素排完,就能实现选择排序,所以说选择排序是有始有终,雨露均沾的一个算法,哈哈~ 选择排序的基本思想是:每一趟在n−i+1 ( i = 1 , 2 , . . . , n − 1 ) 个元素中选择最小的
129 0
|
算法 搜索推荐
基础的手撕算法题
《基础系列》
78 0
|
算法 搜索推荐