思路
用三个 string
存下三个数,然后判断哪个数里有字母(即有墨水印记),然后拿另外两个没被污染的数算出被污染的数。
代码
#include<bits/stdc++.h>
using namespace std;
int t,ans1,ans2,ans3;
string n;
int check(string s){
// 将 string 转成 int
// 若该 string 里有不是数字的字符,返回 -1
int ret=0;
for (int i=0;i<s.length();i++){
if (s[i]<'0' or s[i]>'9') return -1;
else {
ret*=10;
ret+=s[i]-'0';
}
}
return ret;
}
int main(){
// cin>>n;
// cout<<check(n)<<endl;
cin>>t;
while (t--){
string s1,s2,s3;
string add,equal;
cin>>s1>>add>>s2>>equal>>s3;
int a=check(s1);
int b=check(s2);
int c=check(s3);
if (a==-1) a=c-b;
if (b==-1) b=c-a;
if (c==-1) c=a+b;
cout<<a<<" + "<<b<<" = "<<c<<endl;
}
return 0;
}