[2004年NOIP提高组] 津津的储蓄计划

题目大意:每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中,到了年末妈妈会加上20%还给津津。

这个题目的那点在于数据繁多,关系冗乱:

只要理解了这个图就可以了。

代码如下:

#include<cstdio>
#include<iostream>
using namespace std;
int a[15],n1,n2,m; //a[i]:津津每个月的花销 n1,n2:存在妈妈那里的钱 m:津津上个月剩下的钱
int main()
{
for(int i=1;i<=12;i++)
cin>>a[i];
for(int i=1;i<=12;i++)
{
if(m+300>=a[i])
{
n1=(m+300-a[i])/100*100;
m=m+300-a[i]-n1;
n2+=n1;
if(i==12)
{
cout<<m+n2*1.2;
}
}
else
{
cout<<"-"<<i;
break;
}
}
return 0;
}