200字
Luogu P1089 [NOIP 2004 提高组] 津津的储蓄计划
2025-10-01
2025-10-01

思路

  1. 初始化:设置初始剩余金额为0,储蓄总额为0

  2. 逐月处理

    • 每月初获得300元,加上上月剩余金额

    • 如果总额小于当月预算,输出负的月份并结束

    • 计算支付预算后的剩余金额

    • 如果剩余金额≥100元,将整百部分存入储蓄(如230元存200元)

    • 剩余金额减去存款后作为下月初始金额

  3. 年终结算

    • 计算储蓄总额的120%(本金+20%利息)

    • 加上12月剩余金额

    • 输出总额

代码实现

#include <iostream>
using namespace std;

int main() {
    int left = 0;
    int savings = 0;
    int budget[12];
    
    for (int i = 0; i < 12; i++) {
        cin >> budget[i];
    }
    
    for (int i = 0; i < 12; i++) {
        left += 300;
        if (left < budget[i]) {
            cout << "-" << i + 1 << endl;
            return 0;
        }
        
        int remain = left - budget[i];
        if (remain >= 100) {
            int save = (remain / 100) * 100;
            savings += save;
            left = remain - save;
        } else {
            left = remain;
        }
    }
    
    int total = left + savings * 1.2;
    cout << total << endl;
    
    return 0;
}

评论