1 条题解
-
1
using namespace std; int main() { string a, b; cin >> a >> b; int pa = a.find('.'), pb = b.find('.'); string ai = a.substr(0, pa), af = a.substr(pa + 1); string bi = b.substr(0, pb), bf = b.substr(pb + 1); int fl = max(af.size(), bf.size()); while (af.size() < fl) af += '0'; while (bf.size() < fl) bf += '0'; string frac(fl, '0'); int carry = 0; for (int i = fl - 1; i >= 0; i--) { int s = (af[i] - '0') + (bf[i] - '0') + carry; carry = s / 10; frac[i] = '0' + s % 10; } int il = max(ai.size(), bi.size()); while (ai.size() < il) ai = "0" + ai; while (bi.size() < il) bi = "0" + bi; string integ(il + 1, '0'); for (int i = il - 1; i >= 0; i--) { int s = (ai[i] - '0') + (bi[i] - '0') + carry; carry = s / 10; integ[i + 1] = '0' + s % 10; } integ[0] = '0' + carry; int st = 0; while (st < (int)integ.size() - 1 && integ[st] == '0') st++; integ = integ.substr(st); while (frac.size() && frac.back() == '0') frac.pop_back(); cout << integ << "." << frac << endl; return 0; }
- 1
信息
- ID
- 1199
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 37
- 已通过
- 1
- 上传者