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