请求一组数据或者帮我挑挑毛病吧,谢谢大佬们QAQ。。。
#include <bits/stdc++.h>
using namespace std;
long long x,q,i,work();
string s;
void qq(){
while(s[i]<'0'||s[i]>'9'){i++;}
q=0;
while(s[i]>='0' && s[i] <= '9'){
q = q*10 + (s[i]-'0');
i++;
}
}
void FD(){
qq();
x += q;
}
void BK(){
qq();
x -= q;
}
void REPEAT(){
qq();
while(s[i] == ' ') i++; //读一下多余的空格,不过好像没用
int ji = i;//必须记录i的值,因为循环过程中i会变
if (s[i] == '['){
int jq = q;//q的值要记录
for (long long j = 1; j <= jq; j++){
i = ji+1;//跳过左括号[
work();
}
}
}
long long work(){
while(i < s.size()){
if (s[i] == 'F') FD();
if (s[i] == 'B') BK();
if (s[i] == 'R') REPEAT();
if (s[i] == ']') {//else if不对 REPEAT 5[FD 100] FD 10
i++;//REPEAT 5[FD 50 REPEAT 10[FD 100] BK 1]
return 1;
}
i++;
}
}
int main()
{
getline(cin,s);
work();
cout << abs(x);
}