问题标题: 酷町堂:1372   小王的预算

0
0
已解决
邵逸儒
邵逸儒
中级天翼
中级天翼

1372   小王的预算

题目描述 Description

题目描述

小王对钱的管理一直很有兴趣。在每个月的月初小王会收到生活费300元钱,此时小王就会预算这个月的花销,并将剩下的钱存起来。

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

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

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

现在请根据小王每个月的预算,判断会不会出现这种风险。如果不会,到年末的时候,妈妈将小王平常存的钱加上20%还给他之后,此时小王手中会有多少钱。

输入描述 Input Description

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

输出描述 Output Description

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

样例输入 Sample Input

 

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

样例输出 Sample Output

 

-7


0
已采纳
王梓澳
王梓澳
中级光能
中级光能

核心代码如下:

        for(i=1;i<=12;i++) {
        cin>>ys[i]; jy=jy+300-ys[i];
        if(jy<0 && sum==0) sum=i;
        mm=jy/100*100+mm;
        jy=jy%100;
    }
    if(sum!=0) cout<<"-"<<sum;
        else  cout<<mm*1.2+jy;

一开始

ys[13],jy,mm,sum都等于0
0
0
0
栾峻岩
栾峻岩
初级天翼
初级天翼

首先,我们要输入12个数(数组,循环)。

int sum=0;//妈妈的钱
    int num=0;//小王的钱
    int hy;
    bool flag=true;

再从1到12循环。

num+=300 小王拿到钱了。

num-=a[i] 小王减去预算。

如果num为负数,则输出-i      flag=!flag

hy是剩下的num的最大整百数。

妈妈的钱+=hy,小王的钱-=hy

 

 

如果最后,flag还是1的话,输出小王最后的钱+妈妈的钱*120%

 

 

 

100AC

我要回答