我已经尽力跟题解一样了,但还是不对,请各位大佬看一下P1957题解``` #include<bits/stdc++.h> using namespace std; int len(int number){ int x=0; if(number==0) return 1; if(number>0) while(number!=0){ number/=10; x++; } if(number<0){ x=1; number=-number; while(number!=0){ number/=10; x++; } } return x; }
int main(){ string s; int n; char sign; int a,b; cin>>n; for(int i=1;i<=n;++i){ cin>>s; int x; switch(s[0]){ case 'a':cin>>a>>b; printf("%d+%d=%d\n",a,b,a+b); x=len(a+b)+2; sign=s[0]; break; case 'b':cin>>a>>b; printf("%d-%d=%d\n",a,b,a-b); x=len(a-b)+2; sign=s[0]; break; case 'c':cin>>a>>b; printf("%d*%d=%d\n",a,b,ab); x=len(ab)+2; sign=s[0]; break; default: cin>>b; a=0; int l; l=s.size(); for(i=0;i<l;i++) a=a10+s[i]-'0'; switch(sign){ case 'a': printf("%d+%d=%d\n",a,b,a+b); x=len(a+b)+2; break; case 'b': printf("%d-%d=%d\n",a,b,a-b); x=len(a-b)+2; break; case 'c': printf("%d%d=%d\n",a,b,ab); x=len(ab)+2; break; default:break; } break; } x=len(a)+len(b)+x; printf("%d\n",x); } return 0; }