当前位置: 首页 > news >正文

【华为od刷题(C++)】HJ22 汽水瓶

我的代码:

#include<iostream>//引入标准输入输出流库,用于进行输入和输出
using namespace std;
//避免每次都写 std:: 前缀,使得程序可以直接使用 cin, cout 等int main() { //这是程序的入口,程序从这里开始执行int num, res;//num:当前输入的矿泉水瓶数量//res:计算结果,即通过兑换规则最终能喝到的矿泉水瓶数while (cin >> num && num != 0) {//循环读取输入,直到用户输入 0res = 0;while (num >= 3) {res += num / 3;//每3个矿泉水瓶可以兑换1瓶,所以加上 num / 3num = num % 3 + (num / 3);//剩余的矿泉水瓶数是: //num % 3(不能兑换的瓶数)加上通过兑换得到的新的矿泉水瓶数 num / 3}if (num == 2) res += 1;//如果在最后剩下2个矿泉水瓶,那么可以再兑换1瓶,所以 res 增加 1cout << res << endl;}return 0;
}

这段代码的核心思想是模拟一个“矿泉水瓶兑换”的过程,按照一定规则来计算最终通过矿泉水瓶交换所能获得的最大数量

假设输入为 9

  • 第一轮兑换

    • 初始瓶数是9
    • 9个瓶子能兑换 3 瓶(9 / 3 = 3),剩下 0 个瓶子
    • res = 3,此时 num = 0 + 3 = 3
  • 第二轮兑换

    • 现在瓶子数是3,可以兑换1瓶水,剩下 0 个瓶子
    • res = 3 + 1 = 4,此时 num = 0 + 1 = 1
  • 结束,因为 num < 3,无法继续兑换

最终输出:4

思路解析:

  1. 问题背景

    假设你有一堆空矿泉水瓶,每三个空瓶子可以兑换一个新的矿泉水瓶,喝了这个新的矿泉水后又多了一个空瓶,继续按照这个规则进行兑换,直到空瓶不够换新的矿泉水瓶
  2. 程序目标

    给定初始的矿泉水瓶数量,计算最终你能够喝到多少瓶矿泉水;每次你通过交换瓶子来获得新的矿泉水瓶,直到不再能兑换为止

http://www.dtcms.com/a/265956.html

相关文章:

  • ubuntu22 桌面版开启root登陆
  • ubuntu22.04安装anaconda
  • embbding you should know
  • 独立开发者软件出海:如何用Semrush高效洞察与增长
  • 【Note】《深入理解Linux内核》Chapter 10 :Linux 内核中的系统调用机制全解析
  • 贝叶斯深度学习:赋予AI不确定性感知的认知革命
  • 【Oracle学习笔记】8.函数(Function)
  • 湖北理元理律师事务所的债务管理方法论
  • 算法刷题打卡(1)—— 快速排序
  • 睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(上)
  • 【python】OOP:Object-Oriented Programming
  • 数字人分身+矩阵系统聚合+碰一碰发视频: 源码搭建-支持OEM
  • AI开发平台:从技术壁垒到全民创新,AI 开发平台如何重构产业生态?
  • C++ 标准模板库算法之 transform 用法
  • STC8G 8051内核单片机开发 (中断)
  • 在 UniApp 项目中巧用开发工具与 AI 插件:全面提升开发到部署的效率
  • 【时间序列数据处理的噩梦与救赎:一次复杂数据可视化问题的深度复盘】
  • 运维服务部初级服务工程师面招聘笔试题和答案
  • PROFINET转MODBUS TCP网关在机械臂通信操作中的应用研究
  • 微信小程序——skyline版本问题
  • 2025年金融创新与计算机视觉国际会议(FICV 2025)
  • 【网络协议】WebSocket简介
  • Web 服务器架构选择深度解析
  • HTTP-Postman的安装及其使用
  • 电脑CPU使用率占用100%怎么办 解决步骤指南
  • 【数字后端】- 衡量design的congestion情况
  • HTTP各版本变化详解
  • C# 线程同步(一)同步概念介绍
  • 基于Anything LLM的本地知识库系统远程访问实现路径
  • react-打包和本地预览 ——打包优化