警示后人
查看原帖
警示后人
463979
xihale楼主2023/3/9 17:41

提出几点问题:

  1. 减法的时候要注意负数问题,请使用 ((a-b)%p+p)%p 来处理减法出现负数的情况。(来自这里)
  2. 输入时请使用 '\r' 判断结束,亦或者在 循环时 使用 '\r' 判断结束!

输入处理请看代码(删了部分,具体在这):

void get(string &s){
	s.clear();
	char ch;
	while(((ch=cin.get())==' ')||ch=='\n'||ch=='\r');
	do{
		if(ch==' ') continue;
		s.push_back(ch);
	}while((ch=cin.get())!='\n'&&ch!=EOF&&ch!='\r');
}

int main(){
	
	string s; s.reserve(60); get(s);
	ll n, j; cin>>n;
	for(ll i=0;i<3;++i) num=ched[i], ans[i]=calc(s);
	for(ll i=0;i<n;++i){
		get(s);
		try{ for(j=0;j<3;++j){ num=ched[j]; if(calc(s)!=ans[j])break; }} catch(...){continue;}
		if(j==3) cout<<char('A'+i);
	}
	
	return 0;
}
2023/3/9 17:41
加载中...