题目描述
芳芳的零花钱一直都是自己管理。每个月的月初妈妈给芳芳300元钱,芳芳会预算这个月的花销,并且总能做到实际花销和预算的相同。
为了让芳芳学习如何储蓄,妈妈提出,芳芳可以随时把整百的钱存在她那里,到了年末她会加上20%还给芳芳。因此芳芳制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。
例如11月初芳芳手中还有83元,妈妈给了芳芳300元。芳芳预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。到了11月月末,芳芳手中会剩下3元钱。
芳芳发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,芳芳手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,芳芳将不得不在这个月省吃俭用,压缩预算。
现在请你根据2014年1月到12月每个月芳芳的预算,判断会不会出现这种情况。如果不会,计算到2014年年末,妈妈将芳芳平常存的钱加上20%还给芳芳之后,芳芳手中会有多少钱。
所有数据范围都在int以内。
输入
输入包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月芳芳的预算。
输出
输出包括一行,这一行只包含一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末芳芳手中会有多少钱。 <p class='\"p0\"' 5.25pt;="" 7.5pt;\"="">
示例输入
290 230 280 200 300 170 340 50 90 80 200 60 290 230 280 200 300 170 330 50 90 80 200 60
示例输出
-7 1580
#include <bits/stdc++.h> using namespace std; int main() { int p[15]; int n,m,j,k,i,l; int a,b,c,d,e,f,g,h,q; while(cin>>a>>b>>c>>d>>e>>f>>g>>h>>j>>k>>l>>m) { int flag=0,s=0;q=0; p[1]=a; //用数组储存每月的预算 p[2]=b; p[3]=c; p[4]=d; p[5]=e; p[6]=f; p[7]=g; p[8]=h; p[9]=j; p[10]=k; p[11]=l; p[12]=m; for(i=1;i<=12;i++) { s=s+300; if(p[i]<=s) //判断钱是否够用 { s=s-p[i]; q=q+(s/100)*100; //计算整百的钱数,放在妈妈手里 s=s%100; } else { flag=1; cout<<-i<<endl; //不够用输出月份 break; } } if(flag==0) cout<<s+q*1.2<<endl; //够用输出总钱数 } return 0; }