并不难的一条题目
**就几个点要注意: 1. 计算数字的长度时 要记得可能有负数 对负数要特殊处理 2. 对于这种不是很难 操作却略繁琐的题目 要先将每一步在草稿纸上分析好 再写 以便保持思路的清晰(特别是我这种思维混乱的人)**
//P1957 口算练习题 //2016.11.13 #include <cstdio> #include <iostream> #include <stdio.h> #include <algorithm> #define MAXN 10000 + 2 using namespace std; int n, a, b, c, len; char d; string t; int length(int x){ int len = 0, t = 1; if (x < 0) len++, x = -x; for (int i = 1; ;i++){ t = t * 10; if (x < t) return i + len; } } int main(){ cin >> n; for (int i = 0; i < n; i++){ int j = 1; a = b = 0; cin >> t; if (t == "a") d = '+', j--; else if (t == "b") d = '-', j--; else if (t == "c") d = '*', j--; else for (int j = 0; j < t.size(); j++) a = a * 10 + t[j] - '0'; if (j) cin >> b; if (!j) cin>> a >> b; if (d == '+') c = a + b; if (d == '-') c = a - b; if (d == '*') c = a * b; len = 2; len = length(a) + length(b) + length(c) + len; cout << a << d << b << "=" << c << endl; cout << len << endl; } return 0; }