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
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