#include<iostream>
#include<algorithm>
using namespace std;
int m(int y){
int l=0;
while(y){
l++;
y/=10;
}
return l;
}
int main(){
char a;
int n=0;
string n1;
getline(cin,n1);
for(int i=0;i<n1.size();i++){
n=n*10+(n1[i]-'0');
}
for(int i=1;i<=n;i++){
string s;
long long r[2]={0,0};
int k=0;
getline(cin,s);
if(s[0]>='0'&&s[0]<='9'){
for(int j=0;j<s.size();j++){
if(s[j]==' '){
k++;
continue;
}
r[k]=r[k]*10+s[j]-'0';
}
}
else{
a=s[0];
for(int j=2;j<s.size();j++){
if(s[j]==' '){
k++;
continue;
}
r[k]=r[k]*10+s[j]-'0';
}
}
int l=m(r[0])+m(r[1])+2;
switch(a){
case 'a':{
cout<<r[0]<<"+"<<r[1]<<"="<<r[0]+r[1]<<endl;
l+=m(r[0]+r[1]);
break;
}
case 'b':{
cout<<r[0]<<"-"<<r[1]<<"="<<r[0]-r[1]<<endl;
if(r[0]-r[1]<0){
l++;
l+=m(abs(r[0]-r[1]));
}
else l+=m(r[0]-r[1]);
break;
}
case 'c':{
cout<<r[0]<<"*"<<r[1]<<"="<<r[0]*r[1]<<endl;
l+=m(r[0]*r[1]);
break;
}
}
cout<<l<<endl;
}
return 0;
}
为什么答案一样,却判我错?
大佬回答必关注!!!