神犇营-my0123-津津的储蓄计划

版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请与博主联系。 https://blog.csdn.net/qq_31790997/article/details/90737814

【小韦同学@神犇营-my0123-津津的储蓄计划】

题目:

描述

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。
为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。
例如 11 月初津津手中还有 83 元,妈妈给了津津 300 元。津津预计 11 月的花销是 180 元,那么她就会在妈妈那里存 200 元,自己留下 183 元。到了 11 月月末,津津手中会剩下 3 元钱。
现在请你根据 2019 年 1 月到 12 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 2019 年年末,妈妈将津津平常存的钱加上 20% 还给津津之后,津津手中会有多少钱。

输入

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

输出

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

输入样例

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

输出样例

-7

题解:

/*********************************************************************

* 题目:神犇营-my0123-津津的储蓄计划
* 作者:小韦老师
* 邮箱:[email protected]

* 题解:
	思路:
	定义变量 remain(剩余的钱),预算(budget),存储的钱(save),超
	出预算的月份(over),均初始化为 0。
	枚举 1~12 月,每个月的 remain 为 300 减去预算,若为负数,则记下该月
	份,输出“-月份”;否则 save 加上 remain 整除 100,remain 为除以 100
	的余数。 
	这样算下来,存储的 save 的单位是 100,则最后结果为: 
	save * 100 + save * 100 * 0.2 + remain 
	注意:
	当发现有某个月份超支时,不能终止循环,因为题目还没有结束输入。 

*********************************************************************/


#include <iostream>

using namespace std;

int main() {
	
	// 剩余的钱,预算,存储的钱,超出预算的月份 
	int remain = 0, budget = 0, save = 0, over = 0;
	bool flag = false;    //标记是否已超出预算  
	for (int i = 1; i <= 12; i++) {  // 每个月进行迭代 
		cin >> budget;
		remain += 300 - budget;
		if (!flag && remain < 0) {  // 立标志,不可直接退出,影响输入完整性 
			over = i; 
			flag = true;  
		}
		save += remain / 100;
		remain %= 100;
	}
	if (over) cout << "-" << over;
	else cout << save * 100 + save * 100 * 0.2 + remain;
	
	return 0;
}

我是小韦同学,企者不立,跨者不行,每天进步一点点。
欢迎大家多多交流,如果发现有错误,请多指正。有疑问的同学也可以留言评论或者发邮件。
邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/qq_31790997/article/details/90737814