张三的零花钱
不知道你有没有零花钱?你是如何管理⾃⼰的零花钱的?
张三总爱乱花钱。每个⽉的⽉初妈妈给张三300元钱 ,张三会预算这个⽉的花销,并且能做到实际的花销和预算相同。为了让张三学会对⾦钱的管理,妈妈提出,张三可以随时把整百的前存在她那⾥,到了12⽉31⽇,他会加上20%还给张三,也就是说,张三给妈妈的每⼀个100元,到年底都会变成120元!因此张三制定了⼀个存储计划:每个⽉的⽉初,在得到妈妈给的零花钱后,如果他预计到这个⽉的⽉末⼿中还会有多于100元或恰好100元,他就会把整百的钱存在妈妈那⾥,剩余的钱存在⾃⼰⼿⾥。⽐如11⽉初张三⼿中还有83元,妈妈留了张三300元。张三预计11⽉的花销是180元,那么他就会在妈妈那⾥存200元,⾃⼰留下183元。到了11⽉⽉末,张三⼿中会剩下3元钱。
张三发现这个存储计划的主要⻛险是,存在妈妈那⾥的钱在年末之前不能取出。有可能在某个⽉的⽉初,张三⼿中的钱加上这个⽉妈妈给的钱,不够这个⽉的预算。如果出现这种情况,张三将不得不在这个⽉省吃简⽤,压缩预算。
现在请你根据2019年1⽉到12⽉每个⽉张三的预算,判断会不会出现这种情况。如果储蓄计划实施过程中会出现某个⽉钱不够⽤的情况,输出-x,x表⽰出现这种情况的第⼀个⽉;如果不会,计算到2019年12⽉31⽇,妈妈将张三平时存的钱加上20%还给张三后,张三⼿⾥会有多少钱。
样例输⼊
240 280 200 300 120 350 80 50 270 260
样例输出
-7
样例输⼊
290 230 280 200 300 170 130 50 90 80 200 300
样例输出
1520
c# string str = Console.ReadLine();
string[] strArray = str.Split(" ");
int[] budget = new int[strArray.Length];
for (int j = 0; j < strArray.Length; j++)
{
int n = Convert.ToInt32(strArray[j]);
budget[j] = n;
} //获得一组数字
int self = 0; //自己的
int mom = 0; //m妈妈给的
int i = 0; //哪一个月
int tmp = 0; //预算
for (i = 0; i < 12; i++) //0-11 i+1
{
//本月一共有多少300+self
//预算budget[i]
tmp = 300 + self - budget[i]; //剩余的钱 280/100 = 2*100 =200
if (tmp < 0)
{
//i+1
break;
}
//整百的
mom += (tmp / 100)*100;
self = tmp % 100;
}
if (tmp < 0)
{
Console.WriteLine("-" + (i + 1));
}
else
{
self = self + (int)(mom * 1.2);
Console.WriteLine(self);
}