#include<iostream>
#include<string>
using namespace std;
int get(int n) {
if (n == 0)return 1;
int t = n;
int i = 0;
while (n != 0) {
n /= 10;
i++;
}
if (t > 0)
return i;
else
return i+1 ;
}
int main()
{
int i = 0;
string t = "\0";
getline(cin, t);
for (int m = 0; t[m] != '\0'; m++) {
i = i * 10 + t[m] - '0';
}
char sign = 'a';
int sum = 0;
int a1 = 0;
string* s = new string[i];
for (int n = 0; n < i; n++) {
getline(cin, s[n]);
}
for (int n = 0; n < i; n++) {
int count = 0;
int k = 0;
sum = a1 = 0;
if (s[n][0] >= 'a' && s[n][0] <= 'c') {
sign = s[n][0];
}
if (sign == 'a') {
for (int m = 0; s[n][m] != '\0'; m++) {
if (s[n][m] <= '9' && s[n][m] >= '0') {
a1 = a1 * 10 + s[n][m] - '0';
k = m;
}
else {
if (s[n][k] <= '9' && s[n][k] >= '0') {
cout << a1 << "+";
count += get(a1);
}
sum += a1;
a1 = 0;
}
}
sum += a1;
count += get(a1) + get(sum);
cout << a1 << "=" << sum << endl << count +2 << endl;
}
else if (sign == 'b') {
int k = 0;
for (int m = 0; s[n][m] != '\0'; m++) {
if (s[n][m] <= '9' && s[n][m] >= '0') {
sum = sum * 10 + s[n][m] - '0';
}
if (m >= 1) {
if (s[n][m] == ' ' && s[n][m - 1] != 'b') {
k = m;
break;
}
}
k = m;
}
cout << sum << "-";
count += get(sum);
while (s[n][++k] != '\0') {
a1 = a1 * 10 + s[n][k] - '0';
}
sum -= a1;
count += get(a1) + get(sum);
cout << a1 << "=" << sum << endl << count + 2 << endl;
}
else {
sum = 1;
for (int m = 0; s[n][m] != '\0'; m++) {
if (s[n][m] <= '9' && s[n][m] >= '0') {
a1 = a1 * 10 + s[n][m] - '0';
k = m;
}
else {
if (s[n][k] <= '9' && s[n][k] >= '0') {
cout << a1 << "*";
count += get(a1);
sum *= a1;
}
a1 = 0;
}
}
sum *= a1;
count += get(a1) + get(sum);
cout << a1 << "=" << sum << endl << count + 2 << endl;
}
}
return 0;
}
明明试了好几组都可以,也下了第一组测试数据也可以,但1,3,4测试点RE其余都是WA