f = 0 那里可以直接跳出循环了,
在 c = i 后头 加个break。
by 朦胧_XY @ 2022-08-16 20:40:07
@[朦胧_XY](/user/358971)
还是有点问题,最后输出的答案是1530
by muyingmiao @ 2022-08-16 20:42:49
if(s1>=100){
a +=100 ;
s1 = s1-100;
}
改成
a += s1 / 100 * 100;
s1 %= 100;
by 朦胧_XY @ 2022-08-16 20:59:43
if(b>300){
if(s1<b-300){
f = 0;
c = i;
}else if(s1>=(b-300)){
s1 = s1-(b-300);
f = 1;
}
}
改成
if(s1+300<b){
f = 0;
c = i;
break;
}
else{
s1 = s1+300-b;
}
by 朦胧_XY @ 2022-08-16 21:08:09
删掉
if(s1>=b){
a+=300;
s1 = s1-b;
}
else{
s = (300-b)/100*100;
a+=s;
s1 += 300-b-s;
}
by 朦胧_XY @ 2022-08-16 21:11:51
模拟最好别打多余的特判,容易乱
by 朦胧_XY @ 2022-08-16 21:17:33
@[朦胧_XY](/user/358971)
大神还是有一点点问题,运行出来是3160
```c
#include<iostream>
using namespace std;
//a1[j],a1[i]每月的钱数,s存入的钱,s1我手中的钱,a总共存入多少钱
int a1[13],s = 0,s1 = 0,a = 0,f = 1,b,c;
int main(){
for(int j = 1;j<=12;j++){
cin >> a1[j];
}
for(int i = 1;i<=12;i++){
b = a1[i];
s = 0;
if(s1+300<b){
f = 0;
c = i;
break;
}
else{
s1 = s1+300-b;
}
if(s1>=b){
a+=300;
s1 = s1-b;
}
else{
s = (300+s1-b)/100*100;
a+=s;
s1 += 300-b-s;
}
a+=s1/100*100;
s1 %= 100;
}
if(f==1){
cout<<a+(a*0.2)+s1;
}
else{
cout<<'-'<<c;
}
return 0;
}
```
by muyingmiao @ 2022-08-16 21:18:38
@[muyingmiao](/user/763718) 你再看一下我发的,没删干净。。
by 朦胧_XY @ 2022-08-16 21:20:04
20~28行
by 朦胧_XY @ 2022-08-16 21:24:17
@[朦胧_XY](/user/358971)
谢谢大神!!!终于通过了,真的万分感谢!!!!!!!
by muyingmiao @ 2022-08-17 17:22:38