【P1085】津津的储蓄计划

查看完整题目和答题点此前往
首先分析题目,提取关键信息:

  • 每个月的月初妈妈给津津300元钱
  • 津津会预算这个月的花销
  • 津津可以随时把整百的钱存在妈妈那里,到了年末她会加上20%还给津津。
  • 每个月得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。
  • 例如 11月初津津手中还有83元,妈妈给了津津300 元。津津预计11月的花销是180 元,那么她就会在妈妈那里存200元,自己留下183元。到了11月月末,津津手中会剩下3元钱。
  • 因为存在妈妈那里的钱在年末之前不能取出,可能出现不够这个月的原定预算的情况。
  • 根据 2004 年 1 月到 12 月每个月津津的预算,判断会不会出现这种情况。
  • 如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%,还给津津之后,津津手中会有多少钱。

然后分析输入输出格式:

  • 输入12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。
  • 一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 −X,X 表示出现这种情况的第一个月;否则输出到 2004年年末津津手中会有多少钱。

由上面分析可知:

  • 一个循环进行持续输入,次数为12,可以直接从1开始
  • 一个变量接收输入的预算
  • 一个整数记录津津手中剩余的钱
  • 一个整数记录存放在妈妈那里的钱
  • 然后对数据进行处理
  • 每个月手上的钱=上个月手上剩下的钱+每个月妈妈给的钱-预算
  • 如果手上的钱变成负数,则输出月份的负数,程序结束
  • 如果大于等于100,则进行存钱
  • 最后一年都没有超预算,则输出津津所有的钱
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int a,sum=0,savingPot=0;//a是预算,sum是手上有多少钱,savingPot存了多少钱
        for(int i=1;i<=12;i++){
            a=scanner.nextInt();
            sum=sum+300-a;//每个月给300,把钱减去预算
            if(sum<0){//手上钱不够
                System.out.println(-i);
                return;
            }
            else if(sum>=100){//手上钱大于等于100
                savingPot+=sum/100*100;//先存钱
                sum-=sum/100*100;//再减掉手中的钱
            }
            //比100少就收着
        }
        //输出手上的钱和妈妈那的钱(包括利息)
        System.out.println((int)(sum+savingPot*1.2));
    }
}

注意: 存钱时需要先记录存钱的数量,再对手中钱的数量进行改变。还有别忘了妈妈那里存的钱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值