https://www.luogu.com.cn/problem/P1957
这是我的代码:
#include<bits/stdc++.h>
using namespace std;
string c;
char s, l;
int a, b, all, note;
int main() {
int n;
cin >> n;
for (int i = 0; i <= n; i++) {
getline(cin, c);
if (c[0] == 'a' || c[0] == 'b' || c[0] == 'c') {
s = c[0];
int j = c.length() - 1, x = 1;
while (c[j] != ' ') {
b += (c[j] - '0') * x;
j--;
x *= 10;
}
j--;
x = 1;
while (c[j] != ' ') {
a += (c[j] - '0') * x;
j--;
x *= 10;
}
if (note == 1) {
if (s == 'a') {
cout << a << "+" << b << "=" << a + b << endl;
all = a + b;
} else if (s == 'b') {
cout << a << "-" << b << "=" << a - b << endl;
all = a - b;
} else {
cout << a << "*" << b << "=" << a * b << endl;
all = a * b;
}
}
l = s;
} else {
int j = c.length() - 1, x = 1;
while (c[j] != ' ') {
b += (c[j] - '0') * x;
j--;
x *= 10;
}
j--;
x = 1;
for (int i = j; i >= 0; i--) {
a += (c[i] - '0') * x;
x *= 10;
}
if (note == 1) {
if (l == 'a') {
cout << a << "+" << b << "=" << a + b << endl;
all = a + b;
} else if (l == 'b') {
cout << a << "-" << b << "=" << a - b << endl;
all = a - b;
} else {
cout << a << "*" << b << "=" << a * b << endl;
all = a * b;
}
}
}
int sl = 2;
if (a < 0) {
sl++;
a *= -1;
}
if (b < 0) {
sl++;
b *= -1;
}
if (all < 0) {
sl++;
all *= -1;
}
while (a > 0) {
sl++;
a /= 10;
}
while (b > 0) {
sl++;
b /= 10;
}
while (all > 0) {
sl++;
all /= 10;
}
if (note == 1) {
cout << sl << endl;
}
note = 1;
a = 0;
b = 0;
}
return 0;
}
可能做法笨了点,但是应该答案还是对的。
我试了样例和提交后错的第一个样例,我自己运行了下,看着都是对的,可为什么提交上去,全WA了???