#include <iostream>
using namespace std;
int digit(int x)
{
if(x == 0)return 1;
int y = x, cnt = 0;
while(y)
{
y /= 10;
cnt++;
}
return cnt;
}
int main()
{
int n, a, b, flag;
char c;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> c;
if(c >= '0' && c <= '9')
{
//----------------------------
//这里有问题
int sum = c - '0';
cin >> a;
for(int i = 1; i <= digit(a); i++)
{
sum *= 10;
}
a += sum;
//----------------------------
cin >> b;
cout << a;
if(flag == 1)
{
cout << '+' << b << '=' << a + b << endl;
int num = 0;
if(a < 0)num++; if(b < 0)num++; if(a + b < 0)num++;
cout << digit(a) + digit(b) + digit(a + b) + 2 + num << endl;
}else if(flag == 2)
{
cout << '-' << b << '=' << a - b << endl;
int num = 0;
if(a < 0)num++; if(b < 0)num++; if(a - b < 0)num++;
cout << digit(a) + digit(b) + digit(a - b) + 2 + num << endl;
}else if(flag == 3)
{
cout << '*' << b << '=' << a * b << endl;
int num = 0;
if(a < 0)num++; if(b < 0)num++; if(a * b < 0)num++;
cout << digit(a) + digit(b) + digit(a * b) + 2 + num << endl;
}
}
else if(c >= 'a' && c <= 'c')
{
cin >> a >> b;
cout << a;
if(c == 'a')
{
flag = 1; cout << '+' << b << '=' << a + b << endl;
int num = 0;
if(a < 0)num++; if(b < 0)num++; if(a + b < 0)num++;
cout << digit(a) + digit(b) + digit(a + b) + 2 + num<< endl;
}
else if(c == 'b')
{
flag = 2; cout << '-' << b << '=' << a - b << endl;
int num = 0;
if(a < 0)num++; if(b < 0)num++; if(a - b < 0)num++;
cout << digit(a) + digit(b) + digit(a - b) + 2 + num << endl;
}
else if(c == 'c')
{
flag = 3; cout << '*' << b << '=' << a * b << endl;
int num = 0;
if(a < 0)num++; if(b < 0)num++; if(a * b < 0)num++;
cout << digit(a) + digit(b) + digit(a * b) + 2 + num << endl;
}
}
}
return 0;
}
/*
4
a 64 46
275 125
c 11 99
b 46 64
*/
90分代码,#2wa
看了题解区后发现,当测试点为
2
a 10 10
100 200
时,我的代码输出为
10+10=20
8
10+200=210
10
所以是a的输入出了问题。 求大佬帮忙解决一下,自己实在搞不动了