社区讨论
╥﹏╥结果正确,但每个检测点都是WA
P1089[NOIP 2004 提高组] 津津的储蓄计划参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo23akr0
- 此快照首次捕获于
- 2023/10/23 07:18 2 年前
- 此快照最后确认于
- 2023/11/03 07:38 2 年前
初学,思路有一点点小奇怪
看到很多人用数组,但我试图用最基础朴素的思想去解决这个问题
思路如下:
变量设置:预算budget、
每个月拿到300之后的手上有的钱have用于与budget比对、
存在妈妈那的钱save,
计数器count、储存第一次余额不足月份month、循环读取数据数量m=12
流程:
读取budget
将budget与have比对
如果budget小,计算下一轮开始前的save与have
save由差值对100地板除法再乘以100得到,加到前一次save中
而have是减去save和budget,再领取300元
比较后若余额不足,have=300,下个月再说
这个时候记录最小月份
于是每个测试点都是WA救命qwq
CPP#include<iostream>
using namespace std;
int main()
{
int budget,have=300,save=0,count,month,m=12;
for(int i=0;i<m;i++)//读取12个数据
{
cin>>budget;
if(budget<=have)//比较这个月钱够不够
{
save+=((have-budget)/100)*100;
have=have-budget-((have-budget)/100)*100+300;//为下一轮准备好数据
}
else//钱不够
{
have=300;
count+=1;//每次钱不够,计数器都记得
if(count==1)//但是第一次会把相应的月份告诉我
month=i+1;
}
/*cout<<save<<" "<<have<<" "<<endl;*/
}//这是输出中间变量调试用的
if(count!=0)
cout<<"-"<<month;//按照题目要求输出结果
else
cout<<have+save*1.2-300;
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...