【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-01更新)

发布时间 2023-07-01 15:51:58作者: szyawa

#68. 「NOIP2004」津津的储蓄计划 题解

题目传送门

欢迎大家指出错误并联系这个蒟蒻

更新日志

  • 2023-02-01 17:20 文章完成
  • 2023-02-03 16:09 文章审核通过
  • 2023-02-04 22:15 修改了注释
  • 2023-05-27 09:27 修改了 $\LaTeX$
  • 2023-07-01 15:45 修改了代码

题目知识点

模拟

题目分析

非常的“明显”,这是一道模拟题

题意说明

有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱(津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津),不够这个月的原定预算(每个月的月初,在得 到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 $100$ 元或恰好 $100$ 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中),判断会不会出现这种情况。如果不会,计算到 $2004$ 年年末,妈妈将津津平常存的钱加上 20% 还给津津之后,津津手中会有多少钱。(存钱是个好习惯

代码+解释

// #68. 「NOIP2004」津津的储蓄计划
// code by:st20250113
#include <bits/stdc++.h> //伟大的万能头文件

using namespace std;

int a[12], moneyma = 0, moneyjin = 0; // moneyma表示现在存在妈妈那里的钱,moneyjin表示津津手里的钱,要记得先清零

int main() {
    for (int i = 0; i <= 11; i++) {
        cin >> a[i]; // 输入每个月的预算
    }
    for (int i = 0; i <= 11; i++) {
        moneyma = ((moneyjin + 300 - a[i]) / 100) * 100 + moneyma; // 计算存在妈妈的钱
        moneyjin = (moneyjin + 300 - a[i]) - (moneyjin + 300 - a[i]) / 100 * 100; // 计算手里的钱
        if (moneyjin < 0) { // 考虑到不够用的情况
            cout << "-" << i + 1;
            return 0;
        }
    }
    // 防抄袭
    cout << moneyma * 1.2 + moneyjin << endl; // 按要求计算并输出
    return 0; // 华丽结束
}
// QYC最帅