求助
  • 板块P1322 logo语言
  • 楼主donyking
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/5 14:09
  • 上次更新2023/10/27 16:54:28
查看原帖
求助
577384
donyking楼主2022/8/5 14:09

REPEAT一次就能过,嵌套就过不了,总是输出>1e9>1e9的大数。

代码改一次大数变一次

#include<bits/stdc++.h>
using namespace std;
string op;char c;
long long dis,a,num,b[10];
void FD(int x){
	dis+=x;
}
void BK(int x){
	dis-=x;
}
int REPEAT(int f,int n){
	while(cin>>op){
		if(op=="]")return b[n]*f;
		else if(op=="FD"){
			cin>>a;
			b[n]+=a;
		}
		else if(op=="BK"){
			cin>>a;
			b[n]-=a;
		}
		else if(op=="REPEAT"){
			cin>>num>>c;
			b[n]+=REPEAT(num,n+1);
		}
	}
}
int main() {
	//cout<<"yes"<<'\n';
	while(cin>>op){
		if(op=="FD"){
			cin>>a;
			//cout<<"FD"<<' ';
			dis+=a;
		}
		if(op=="BK"){
			cin>>a;
			dis-=a;
		}
		if(op=="REPEAT"){
			cin>>num>>c;
			dis+=REPEAT(num,1);
		}
	}
	cout<<abs(dis);
}

2022/8/5 14:09
加载中...