求助!我想知道哪里错了

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

还有一个问题就是,在编译器粘贴输入的时候我还没按回车,直接就输出了,请问是怎么回事?
by Evolution333 @ 2023-10-18 15:58:29


稍等,我看看
by yhliuhao @ 2023-10-18 16:20:34


@[Evolution333](/user/1128181) 因为 ``` else if(remain-n<0){ cout<<remain-n; return 0; } ```
by shengyeqi @ 2023-10-18 16:21:03


``` #include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int n=0; int remain=0,deposit=0; for(int i=1;i<=12;i++){ cin>>n; remain+=300-n; if(remain<0){ cout<<"-"<<i; return 0; }else{ deposit+=remain/100; remain%=100; } } cout<<deposit*120+remain; return 0; } ```
by yhliuhao @ 2023-10-18 16:28:21


@[Evolution333](/user/1128181) 因为你一边输入一遍处理,当发现不符合题意时就自动跳出了(如楼下大佬所说) 也有可能是编译器的问题,~~(我的C++也这样)~~,可以用重定向测试或用洛谷在线IDE,要不然就重新下一个编译器
by yhliuhao @ 2023-10-18 16:32:33


@[Evolution333](/user/1128181) ``` #include <iostream> using namespace std; int main() { const int income = 300; int n; int remain = 0; int deposit = 0; int month_with_deficit = -1; for (int i = 1; i <= 12; i++) { cin >> n; remain += income - n; if (remain < 0) { month_with_deficit = i; break; // 余额不足时退出循环 } else { deposit += remain / 100; remain %= 100; } } if (month_with_deficit != -1) { cout << -month_with_deficit; } else { int final_balance = deposit * 120 + remain; cout << final_balance; } return 0; } ```
by shengyeqi @ 2023-10-18 16:32:43


|