全wa,求助,dev能跑出样例,太难了

P1957 口算练习题

@[ming0819](/user/489854) ```c++ //P1957 口算练习题 #include <iostream> #include <algorithm> #include <vector> #include <cmath> #include <cstdio> #include <cstring> using namespace std; const int N = 100010; int nsize(int n) // 计算一个数字的大小 { if (n == 0) return 1; int i = 0; if (n < 0) n = 0 - n, i++; while (n >= 1) { n /= 10; ++i; } return i; } int change(string a) //从字符串转为数字 { int n = 0; for (int i = 0; i < a.size(); ++i) n += (a[i] - '0') * pow(10, a.size()-i-1); return n; } int main() { int n; cin >> n; char op; for (int i = 0; i < n; ++i) { string s; cin >> s; if (s[0] >= 'a' && s[0] <= 'c') { op = s[0]; int a, b; cin >> a >> b; if (op == 'a') { printf("%d+%d=%d\n", a, b, a+b); cout << 2+nsize(a)+nsize(b)+nsize(a+b) << endl; } else if (op == 'b') { printf("%d-%d=%d\n", a, b, a-b); cout << 2+nsize(a)+nsize(b)+nsize(a-b) << endl; } else { printf("%d*%d=%d\n", a, b, a*b); cout << 2+nsize(a)+nsize(b)+nsize(a*b) << endl; } } else { int a = change(s); int b; cin >> b; if (op == 'a') { printf("%d+%d=%d\n", a, b, a+b); cout << 2+nsize(a)+nsize(b)+nsize(a+b) << endl; } else if (op == 'b') { printf("%d-%d=%d\n", a, b, a-b); cout << 2+nsize(a)+nsize(b)+nsize(a-b) << endl; } else { printf("%d*%d=%d\n", a, b, a*b); cout << 2+nsize(a)+nsize(b)+nsize(a*b) << endl; } } } return 0; } ```
by Jasper08 @ 2022-03-16 15:14:37


|