信奥赛CSP-J复赛集训(模拟算法专题)(3):P1089 [NOIP 2004 提高组] 津津的储蓄计划

信奥赛CSP-J复赛集训(模拟算法专题)(3):P1089 [NOIP 2004 提高组] 津津的储蓄计划

在这里插入图片描述

题目描述

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 300 300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20 % 20\% 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 100 100 元或恰好 100 100 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如 11 11 11月初津津手中还有 83 83 83 元,妈妈给了津津 300 300 300 元。津津预计 11 11 11月的花销是 180 180 180 元,那么她就会在妈妈那里存 200 200 200 元,自己留下 183 183 183 元。到了 11 11 11 月月末,津津手中会剩下 3 3 3 元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据 2004 2004 2004 1 1 1 月到 12 12 12 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 2004 2004 2004 年年末,妈妈将津津平常存的钱加上 20 % 20\% 20% 还给津津之后,津津手中会有多少钱。

输入格式

12 12 12 行数据,每行包含一个小于 350 350 350 的非负整数,分别表示 1 1 1 月到 12 12 12 月津津的预算。

输出格式

一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 − X -X X X X X 表示出现这种情况的第一个月;否则输出到 2004 2004 2004 年年末津津手中会有多少钱。

注意,洛谷不需要进行文件输入输出,而是标准输入输出。

输入输出样例 #1

输入 #1

290
230
280
200
300
170
340
50 
90 
80 
200
60

输出 #1

-7

输入输出样例 #2

输入 #2

290 
230 
280 
200 
300 
170 
330 
50 
90 
80 
200 
60

输出 #2

1580

AC代码:

#include<bits/stdc++.h>
using namespace std;int x;     // 每个月的开销
int y;     // 上个月剩余的钱(未存入妈妈账户的零钱)
int ans;   // 累计存入妈妈那里的钱(整百存储)int main() {for (int i = 1; i <= 12; i++) { // 处理12个月的数据cin >> x; // 输入当前月的开销// 检查上个月剩余的钱(y) + 本月300元是否不足以支付本月开销if (y + 300 < x) {cout << "-" << i; // 不足则输出当前月份并结束程序return 0;}// 计算当前月能存多少整百的钱// (y + 300 - x)是总剩余,整除100得到整百的数量int q1 = (y + 300 - x) / 100;if (q1 > 0) {        // 如果存在可存的整百金额ans += q1 * 100; // 将整百的钱存入妈妈那里}// 更新本月剩余的钱:总剩余(y+300-x)减去存的钱(q1*100)// 等价于取模100,保留零钱部分y = (y + 300 - x) % 100;}// 输出最终结果:剩余零钱(y) + 存款与利息(ans * 1.2)// 注意:ans是整百总和,利息为20%,所以总金额为 ans*1.2 + ycout << y + ans * 1.2;return 0;
}

代码功能分析:

  1. 变量说明

    • x:记录每个月的开销。
    • y:存储上个月剩余的零钱(未存入妈妈账户的部分)。
    • ans:累计存入妈妈账户的整百金额总和。
  2. 循环处理每月数据

    • 遍历12个月,逐月输入开销x
    • 资金不足判断:若上个月剩余的钱y加上本月300元不足以支付本月开销,直接输出负的当前月份并终止程序。
  3. 存款计算

    • 计算本月总剩余资金(y + 300 - x)
    • 将总剩余资金中整百的部分存入妈妈账户(q1 * 100),并更新累计存款ans
    • 剩余零钱更新为总剩余资金对100取模的结果,即y = (y + 300 - x) % 100
  4. 年终结算

    • 输出最终总金额,包括妈妈账户中的本金与20%利息(ans * 1.2)以及手中剩余的零钱y

关键逻辑验证:

  • 资金不足判定:正确判断当月是否会出现赤字,确保及时输出错误月份。
  • 整百存款计算:通过整除和取模操作精确处理存款与零钱,避免误差。
  • 利息计算:整百存款的20%利息通过ans * 1.2正确实现,与剩余零钱相加得到最终结果。

文末彩蛋:

关注并查看老师的个人主页,学习完整csp信奥赛完整系列课程: https://edu.csdn.net/lecturer/7901

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日新F1、瑞研F600P 干线光纤熔接(熔接损耗最大0.03DB)

Ⅰ. 设备特性对比与实测验证 1. 日新F1&#xff08;两马达&#xff09;极限参数 切割角度&#xff1a;必须≤0.3&#xff08;双边累计误差&#xff1c;0.6&#xff09; ▶ 实测案例&#xff1a;切割0.35时&#xff0c;损耗波动达0.05-0.08dB&#xff08;超干线标准&#xff09…

【量化科普】Sharpe Ratio,夏普比率

【量化科普】Sharpe Ratio&#xff0c;夏普比率 &#x1f680;量化软件开通 &#x1f680;量化实战教程 在量化投资领域&#xff0c;夏普比率&#xff08;Sharpe Ratio&#xff09;是一个非常重要的风险调整后收益指标。它由诺贝尔经济学奖得主威廉F夏普&#xff08;William…

数据结构--【顺序表与链表】笔记

顺序表 template <class T> class arrList :public List<T> //表示 arrList 类以公有继承的方式继承自 List<T> 类 //公有继承意味着 List<T> 类的公共成员在 arrList 类中仍然是公共成员&#xff0c;受保护成员在 arrList 类中仍然是受保护成员。 { …

idea中隐藏目录

可能的解决步骤&#xff1a; 排除目录的方法是否在2021版本中有变化&#xff1f;应该没有&#xff0c;还是通过右键标记为排除。 用户可能想完全隐藏目录&#xff0c;比如在项目视图中不显示&#xff0c;这可能需要调整项目视图的设置&#xff0c;比如取消勾选“显示排除的文件…

AWS 如何导入内部SSL 证书

SSL 证书的很重要的功能就是 HTTP- > HTTPS, 下面就说明一下怎么导入ssl 证书,然后绑定证书到ALB. 以下示例说明如何使用 AWS Management Console 导入证书。 从以下位置打开 ACM 控制台:https://console.aws.amazon.com/acm/home。如果您是首次使用 ACM,请查找 AWS Cer…

2025最新群智能优化算法:基于RRT的优化器(RRT-based Optimizer,RRTO)求解23个经典函数测试集,MATLAB

一、基于RRT的优化器 基于RRT的优化器&#xff08;RRT-based Optimizer&#xff0c;RRTO&#xff09;是2025年提出的一种新型元启发式算法。其受常用于机器人路径规划的快速探索随机树&#xff08;RRT&#xff09;算法的搜索机制启发&#xff0c;首次将RRT算法的概念与元启发式…

doris: Oracle

Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。 使用须知​ 要连接到 Oracle 数据库&#xff0c;您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序&#xff0c;您可以从 Maven 仓库…

im即时聊天客服系统SaaS还是私有化部署:成本、安全与定制化的权衡策略

随着即时通讯技术的不断发展&#xff0c;IM即时聊天客服系统已经成为企业与客户沟通、解决问题、提升用户体验的重要工具。在选择IM即时聊天客服系统时&#xff0c;企业面临一个重要决策&#xff1a;选择SaaS&#xff08;软件即服务&#xff09;解决方案&#xff0c;还是进行私…

mysql中in和exists的区别?

大家好&#xff0c;我是锋哥。今天分享关于【mysql中in和exists的区别?】面试题。希望对大家有帮助&#xff1b; mysql中in和exists的区别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中&#xff0c;IN 和 EXISTS 都用于进行子查询&#xff0c;但它…

element-plus中table组件的使用

1、table组件的基本使用 注意&#xff1a; ①对象集合&#xff0c;要从后端查询。 ②prop是集合中的对象的属性名&#xff1b;label是表格表头的名称。 2、将性别一列的71转为男&#xff0c;72转为女 问题描述&#xff1a; 解决步骤&#xff1a; ①将el-table-column变成双标签…

Django小白级开发入门

1、Django概述 Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。 Django 框架的核心组件有&#xff1a; 用于创建模型的对象关系映射为最终用户设计较好的管理界面URL 设计设计者友好的模板…

使用 display: flex 实现动态布局:每行两个 item,单数时最后一个占满整行

文章目录 使用 display: flex 实现动态布局&#xff1a;每行两个 item&#xff0c;单数时最后一个占满整行 &#x1f3af;一、需求分析二、实现思路三、代码实现1. HTML 结构2. CSS 样式关键点解析&#xff1a; 四、效果演示HTML 示例&#xff1a;效果&#xff1a; 五、完整代码…

preloaded-classes裁剪

系统预加载了哪些class类&#xff1f;system/etc/preloaded-classes 修改源代码&#xff1f; frameworks\base\config\preloaded-classes 默认位置&#xff0c;如果改了不生效&#xff0c;可能有其它模块的mk文件指定了preloaded-classes覆盖了framework模块&#xff0c;例如…

华为配置篇-OSPF基础实验

OSPF 一、简述二、常用命令总结三、实验3.1 OSPF单区域3.2 OSPF多区域3.3 OSPF 的邻接关系和 LSA 置底 一、简述 OSPF&#xff08;开放式最短路径优先协议&#xff09; 基本定义 全称&#xff1a;Open Shortest Path First 类型&#xff1a;链路状态路由协议&#xff08;IGP&…

Orale数据文件加错位置,你直接rm引发的故障

数据库可能面临硬件故障、人为错误、恶意攻击、自然灾害等多种潜在风险&#xff0c;那么今天这个故障就是由于业务人员加错数据文件的位置&#xff0c;然后直接从物理层面rm -f了&#xff0c;导致了生产的故障&#xff01; 以下是针对Oracle数据库物理删除数据文件后的快速修复…

ChromeDriver下载 最新版本 134.0.6998.35

平时为了下个驱动&#xff0c;到处找挺麻烦&#xff0c;收集了很多无偿分享给需要的人&#xff0c;仅供学习和交流。 ChromeDriver及浏览器134.0.6998.35 ChromeDriver及浏览器133.0.6943.141 ChromeDriver 102.0.5005.61 ChromeDriver 105.0.5195.102 ChromeDriver 108.0…

QEMU源码全解析 —— 块设备虚拟化(2)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(1) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! 上一回讲解了几种虚拟化方式(全虚拟化、半虚拟化和硬件辅助虚拟化)的优缺点及其对比…

Redis——缓存穿透、击穿、雪崩

缓存穿透 什么是缓存穿透 缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中&#xff0c;导致请求直接到了数据库上&#xff0c;根本没有经过缓存这一层。举个例子&#xff1a;某个黑客故意制造我们缓存中不存在的 key 发起大量请求&#xff0c;导致大量请求落到数据库…

DELETE/ UPDATE/ INSERT 语句会自动加锁

在数据库系统中&#xff0c;DELETE、UPDATE 和 INSERT 语句通常会自动加锁&#xff0c;以确保数据的一致性和并发控制。具体的锁类型和效果取决于数据库的实现&#xff08;如 MySQL、PostgreSQL 等&#xff09;以及事务的隔离级别。以下是这些操作通常加锁的行为和效果&#xf…

【从零开始学习计算机科学】硬件设计与FPGA原理

硬件设计 硬件设计流程 在设计硬件电路之前,首先要把大的框架和架构要搞清楚,这要求我们搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。如果你找到了的参考设计,最好还是…