UVA465:Overflow
2013-05-21 12:17
260 查看
WA了三次;仅仅是因为输出输入数据时,先去了了前导0.罪过啊!!
10494 - If We Were a Child Again
#include<iostream> #include<string> #include<sstream> using namespace std; string del_pre_zero(const string& a) { int i = 0; for(; a[i] == '0' && i != a.size(); ++i); if(i == a.size()) return "0"; string t(a.begin()+i, a.end()); return t; } bool is_not_small(const string& a, const string& b) { if(a.size() != b.size()) return a.size() > b.size(); return a >= b; } string reverse(const string& a) { string t(a.rbegin(), a.rend()); return t; } string operator - (const string& a, const string& b) { //cout << "a: " << a << " " << "b: " << b << endl; string result = ""; string x(a), y(b); bool flag = true; if(!is_not_small(a, b)) { flag = false; string t(x); x = y; y = t; } x = reverse(x); y = reverse(y); int i, cur, c; i = cur = c = 0; for(; i < y.size(); ++i) { cur = x[i] - y[i] + c; (cur < 0) ? (cur += 10, c = -1) : (c = 0); result +=(cur + '0'); } while(i < x.size()) { cur = x[i] - '0' + c; (cur < 0) ? (cur += 10, c = -1) : (c = 0); result += (cur + '0'); ++i; } if(!flag) { string t = "-"; t += result; result = t; } result = reverse(result); return del_pre_zero(result); } string operator -= (string& a, const string& b) { return a = a - b; } string operator / (const string& a, const string& b) { if(!is_not_small(a, b)) return "0"; if(a == b) return "1"; string x(a), y(b); int count = 0; while(is_not_small(x, y)) { x -= y; ++count; } stringstream ss; ss << count; string result = ""; ss >> result; return result; } string operator % (const string& a, const string& b) { if(!is_not_small(a, b)) return a; if(a == b) return "0"; string x(a), y(b); while(is_not_small(x, y)) { x -= y; // cout << "***" << x << "***" << endl; } return x; } int main() { string a, b, c, result; std::ios::sync_with_stdio(false); while(cin >> a >> c >> b, b != "0") { a = del_pre_zero(a); b = del_pre_zero(b); if(c == "%") result = a % b; else if(c == "/") result = a / b; //cout << a - b << endl; cout << result << endl; } return 0; }
10494 - If We Were a Child Again
相关文章推荐
- uva 465 Overflow
- uva 465 Overflow(借助double型进行比较)
- UVa 465 Overflow
- uva 465 - Overflow 高精度还是浮点数?
- uva-465-Overflow
- UVA - 465 Overflow
- UVA 465 - Overflow
- Uva 465 - Overflow
- UVa 465 - Overflow
- UVA 465 Overflow(浮点数的范围)
- uva-465(overflow)
- UVa 465 - Overflow
- UVa 465 - Overflow
- UVA - 465 Overflow
- UVa 465 Overflow (比较大小难道不应该用double吗)
- UVA 465 - Overflow(大数)
- uva465 - Overflow
- uva 465 Overflow 还是高精度。。。
- UVA_465_Overflow
- UVA 465 Overflow