如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝(详解)

简介: 如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝(详解)

题目:

某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?” 答案是5瓶 方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。 然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。 如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝

运行演示结果

代码演示

// 包名
package top.gaojc;
// 导包
import java.util.Scanner;

// 声明一个类名为Main的类
public class Main {

  // mian方法 程序入口
  public static void main(String[] args) {
    /*
     * 某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?” 答案是5瓶 
     * 方法如下:
     * 先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。
     * 然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。 
     * 如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝
     */

    // 键盘输入
    Scanner scan = new Scanner(System.in);
    // 获取用户输入的空瓶子数量
    int n = scan.nextInt();
    // 现在手中的汽水数量
    int now = 0;
    // 总共喝的汽水数量
    int sum = 0;
    // 使用while循环判断 如果余下的瓶子数量大于2 则继续执行
    while (n > 2) {
      // 换来的汽水数量
      now = n / 3;
      // 总共喝的汽水数量
      sum += now;
      // 重置
      now = 0;
      // 计算剩余瓶子数量
      n = n % 3 + n / 3;
    }
    // 余下的空瓶子数量如果为2 则可以再借一瓶 执行+1操作  否则直接输出总共喝的汽水数量
    if (n == 2) {
      // 输出
      System.err.println(sum + 1);
    } else {
      // 输出
      System.err.println(sum);
    }
  }
}
目录
相关文章
|
安全 数据处理 网络虚拟化
|
传感器 监控 测试技术
Visual Studio 2022 常用快捷键,记录一下别忘记~
Visual Studio 2022 常用快捷键,记录一下别忘记~
2057 0
|
数据可视化 IDE 编译器
Open CASCADE之v7.4.0源码编译与可视化调试,使用VS2017+32位编译器(1)
Open CASCADE之v7.4.0源码编译与可视化调试,使用VS2017+32位编译器
1607 0
Open CASCADE之v7.4.0源码编译与可视化调试,使用VS2017+32位编译器(1)
|
Docker 容器
Gitlab - 解决访问 gitlab 网站出现 502 报错信息的问题
Gitlab - 解决访问 gitlab 网站出现 502 报错信息的问题
904 0
Gitlab - 解决访问 gitlab 网站出现 502 报错信息的问题
|
8月前
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
422 3
|
7月前
|
存储 安全
ArrayList 和 LinkedList 的区别是什么?
1. 数据结构实现:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实 现。 2. 随机访问效率:ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数 据存储方式,所以需要移动指针从前往后依次查找。 3. 增加和删除效率:在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为 ArrayList 增删操作要影响数组内的其他数据的下标。 4. 内存空间占用:LinkedList 比 ArrayList 更占内存,因为 LinkedList 的节点除了存储数
|
存储 XML 编解码
PyMuPDF 1.24.4 中文文档(八)(3)
PyMuPDF 1.24.4 中文文档(八)
621 1
|
11月前
|
前端开发 开发者
深入探索 Flutter 鸿蒙版的画笔使用与高级自定义动画
本文深入探讨了 Flutter 中的绘图功能,重点介绍了 CustomPainter 和 Canvas 的使用方法。通过示例代码,详细讲解了如何绘制自定义图形、设置 Paint 对象的属性以及实现高级自定义动画。内容涵盖基本绘图、动画基础、渐变动画和路径动画,帮助读者掌握 Flutter 绘图与动画的核心技巧。
253 1
|
11月前
|
JavaScript 开发者 Docker
深入理解Docker容器化技术,打造高效开发环境
深入理解Docker容器化技术,打造高效开发环境
|
监控 前端开发 Java
6个顶级SpringCloud微服务开源项目
6个顶级SpringCloud微服务开源项目
688 5