题解:P1089 [NOIP 2004 提高组] 津津的储蓄计划

· · 题解

题目传送门。

题目分析

简单的模拟题,按照题意模拟津津的操作就行了。

什么是津津的操作?就是津津每个月会得到 300 元,并且会花掉一些钱,花掉的钱如果超过本月所得的 300 元钱时,输出这个月是几月。假如没有一个月花的钱超过本月所得的 300 元钱,那么如果其积累的剩余钱大于 100 元,那么津津会将他手中的钱整百的给妈妈,年底妈妈会将津津存的钱加上 20\% 还给津津,求年底津津会有多少钱。

模拟每个月的存钱,并减去花掉的钱,假如这个月的钱小于 0,那么直接输出这个月的月份,打上一个标记,终止循环。假如没有小于 0,继续程序,将剩下的钱加入到剩下的总钱数中,当总钱数大于 100,将整百的钱给存到 mom 函数中,接着将剩下的总钱数减去刚刚存的钱数。

最后看是否打上标记,没有打上的话输出加上利息的存的钱与原本剩下的钱的和。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int money=0,cos,mom=0;//初始化 
    bool flag=true;//初始化 
    for(int i=1;i<=12;i++)//1~12月 
    {
        money+=300;//每个月给个300元 
        cin>>cos;//这里不是三角函数而是每个月花费的钱(っ °Д °;)っ! 
        money-=cos;//每个月剩余 
        if(money<0)//钱不够了 
        {
            cout<<"-"<<i;//输出月份 
            flag=false;//做标记 接着不用输出了 
            break;
        }
        if(money/100>0)//能存钱 
        {
        mom+=(money/100)*100;//津津的钱存给妈妈 
        money-=(money/100)*100; //减去上交的钱就是剩下的钱 
        }
    }
    if(flag)//没有一个月花超过300元 
    {
    mom*=1.2;//加上20% 
    cout<<mom+money<<" ";//记得算上津津剩下的钱 
    }
    return 0;
}