全红孱弱求助,看不出问题啊,在线等(C++)

P1089 [NOIP2004 提高组] 津津的储蓄计划

两年半之前写的代码,不要嘲笑好吧 ```cpp #include<iostream> #include<cstdio> using namespace std; int main() { double d,c=0;//c:上月剩钱 ,d:本月剩钱 int b,a,sum,e=0;//B:本月剩的钱;a:预计;sum:整百;e:本年手里的钱(不含妈妈给的); for(int i=1;i<=12;i++){ cin>>a; b=300+c-a; if(b>=100){ sum=b%100; d=b-sum; e=e+d; } else{ sum=b; } c=sum; if(c<0){ cout<<"-"<<i; return 0; } } cout<<c+e*1.2; return 0; } ```
by lhz123bc @ 2023-12-05 20:07:13


@[XYZLT](/user/552448) 思路不清晰 ```cpp #include<bits/stdc++.h> using namespace std; int mam; int s[15],sum=0,l=0; int main(){ for(int i=1;i<=12;i++){ cin>>s[i]; } for(int i=1;i<=12;i++){ s[i]-=s[i-1];//1,提前 2,不是 + ,是 - if(s[i]<=100){//简化 mam+=2; s[i]=300-(s[i]+200);//调整次序 } else if(s[i]<=200){//简化 mam+=1; s[i]=300-(s[i]+100);//调整次序 } else if(s[i]<=300){//简化 s[i]=300-s[i]; } else{ cout<<"-"<<i; return 0; } } // if(s[12]>=100&&s[12]<200) { mam+=1; s[12]-=100; } else if(s[12]<=200&&s[12]<300){ mam+=2; s[12]-=200; } else if(s[12]<=300){ mam+=3; s[12]-=300; } sum=s[12];//只需要s[12] cout<<sum+mam*120; return 0; } ```
by oymz @ 2023-12-05 20:34:26


@[XYZLT](/user/552448) 此代码还有错误
by oymz @ 2023-12-05 20:40:38


```cpp #include<bits/stdc++.h> using namespace std; int a[20],k=0,m; int main(){ for(int i=1;i<=12;i++){ cin>>a[i]; } for(int i=1;i<=12;i++){ k+=300; k-=a[i]; if(k<0){ cout<<-i; return 0; } m+=k/100; k%=100; } cout<<k<<' '<<m*120; } ``` 这是我的代码
by oymz @ 2023-12-05 20:41:53


@[XYZLT](/user/552448) 思路不是很清晰,有好多没必要的步骤,弄着弄着就把你自己搞晕了(其实我也晕了...) 看一下我之前写的代码,注释都在旁边,有啥问题的话@我就好~ 上代码: ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int yusuan,yue=0,zongqianshu,mum=0; for(int i=1;i<=12;i++){ yue+=300;//余额+月入300 scanf("%d",&yusuan); yue-=yusuan;//剩余 if(yue<0){//是否不够 printf("%d",-i);//输出-i return 0; } if(yue>=100){//是否存钱 mum=mum+yue/100;//基础+新存的 yue=yue%100;//剩余 } } zongqianshu=yue+mum*120;//结余=余额+妈妈手上的1.2倍 printf("%d",zongqianshu);//输出 return 0; } ``` 希望能帮到你~
by GXZJQ @ 2023-12-11 20:24:04


|