【题目链接】
ybt 1074:津津的储蓄计划
ybt 1835:【04NOIP提高组】津津的储蓄计划
OpenJudge NOI 1.5 22:津津的储蓄计划
【题目考点】
1. 循环、判断
【解题思路】
- 循环12次,读入每个月的预算为b
- 设m为津津手中的钱,每个月他妈给他300,那么每个月初他拥有的钱为m+300,
- 如果m+300大于等于当月预算b,那么这个月能过下去。到月末时,本月花剩下的钱,等于本月有的钱m+300减去预算b。剩下的钱中,再把整百的钱存钱。设变量s表示存钱的数量。
- 如果m+300小于当月预算b,那么这个月过不下去了,预算失败,返回当月月份(前面加负号),程序结束。
- 最终输出手中的钱m加上存款s的本息和,为(1+20%)s + m = 1.2s + m
【题解代码】
解法1:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m = 0, s = 0, b, t;//m:津津手中的钱 s:存的钱, b:某个月的预算
for(int i = 1; i <= 12; ++i)
{
cin>>b;
if(m + 300 >= b)//如果本月能用的钱大于等于预算
{
t = m + 300 - b;//t:预计本月末剩余的钱
m = t % 100; //存钱后,手中剩余的钱
s += t - m; //存钱数,为t中包含的整百数,即 t - t % 100
}
else//如果本月能用的钱小于预算
{
cout<<-i;
return 0;
}
}
cout<<s*1.2 + m;//存款+利息+手里的钱
return 0;
}