小弟我自己找不出錯誤 測試執行會錯誤,但是手動輸入正確
由於過往經驗我不相信測試執行,所以就直接送出
然後得到了一個NA

以下是我的程式碼
#include<iostream>#include<string>#include<cmath>#include<cstdlib>#include<fstream>#include <vector>using namespace std;
int main(){ int d,x,y,z,w,n,m; while(cin>>d) { for(int j=0;j<d;j++) { cin>>x>>y>>z>>w>>n>>m; cin.get(); string in; getline(cin,in); int drug=0; for(int i=0;i<=in.length();i+=2) { m-=drug; if(m<=0) { cout<<"bye~Rabbit\n"; break; } switch(in[i]) { case '1': m+=x; break; case '2': m+=y; break; case '3': m-=z; break; case '4': m-=w; drug+=n; break; } if(m<=0) { cout<<"bye~Rabbit\n"; break; } } if(m>0) { cout<<m<<"g\n"; } } }}
以上
麻煩各位大大了
小弟我自己找不出錯誤 測試執行會錯誤,但是手動輸入正確
由於過往經驗我不相信測試執行,所以就直接送出
然後得到了一個NA

以下是我的程式碼
#include#include#include#include#include#include using namespace std;
int main(){ int d,x,y,z,w,n,m; while(cin>>d) { for(int j=0;j<d;j++) { cin>>x>>y>>z>>w>>n>>m; cin.get(); string in; getline(cin,in); int drug=0; for(int i=0;i<=in.length();i+=2) { m-=drug; if(m<=0) { cout<<"bye~Rabbit\n"; break; } switch(in[i]) { case '1': m+=x; break; case '2': m+=y; break; case '3': m-=z; break; case '4': m-=w; drug+=n; break; } if(m<=0) { cout<<"bye~Rabbit\n"; break; } } if(m>0) { cout<<m<<"g\n"; } } }}
以上
麻煩各位大大了
HIHI
for(int i=0;i<=in.length();i+=2)
這個地方我了解你的意思,但如果測資中有不預期的換行或空格就完蛋了。
所以我建議是check你的陣列in[]每一個位置,如果在'1'~'4'之間,再去做下面的算式。
你可以自己改改看,我有幫你改好 確定AC了