问题标题: 洛谷:洛谷1089

0
0

1
已采纳
方亦欧
方亦欧
新手光能
新手光能
非常经典的一道题,NOIP里的真题。

首先,当然是输入,存到数组a里。

for循环,0到11(从0开始的,你也可以根据自己的习惯调整)

定义两个变量,money_j和money_m,分别表示津津手里的目前的钱和妈妈手里的目前的钱。

模拟,money_j加上300。

判断,如果money_j<300(钱不够预算),输出,flag=0(用于判断有没有发生钱不够用的情况),跳出。

 if(money_w-a[i]<0)
 {
      cout<<'-'<<i+1;
      flag=0; 
      break;  
 }   

然后判断如果money_j-a[i]>=100(有存钱的情况):

money_m+=(money_j-a[i])-(money_j-a[i])%100;
money_m1=(money_j-a[i])-(money_j-a[i])%100;
money_j=money_j-money_m1-a[i];

这其中,money_m1是money_m的一个副本,不好写思路了,自己研究吧。

如果money_j-a[i]<100(没有存钱的情况),就直接把money_j减去a[i]就可以了。

循环结束。

随后,判断flag是否为1(有没有发生钱不够用的情况),如果是,输出money_m*1.2+money_j。

 if(flag)
        cout<<money_m*1.2+money_w;

方亦欧在2018-02-08 21:11:30追加了内容

不好意思,由于我的这个程序是酷町堂里1372小王的预算这一题的,变量名称有些问题,代码中的money_w就是money_j

0
蒋智航
蒋智航
高级天翼
高级天翼

方亦欧 那道题是“津津的储蓄计划”,是高中组的题,我写过。1372小王的预算与他类似

0
0
梁锦程
梁锦程
高级光能
高级光能
for(int i=1;i<=12;i++)
    {scanf("%d",&a);
     l+=300;
     l-=a;
     if(l<0) {printf("-%d\n",i);return 0;}
     mom+=l/100;
     l%=100; 
    }
 mom*=120; 
 printf("%d\n",mom+l); 

 

0
我要回答