题解 | #大数加法#好久不见高精了
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
好久不见高精度相关的题目了
#include <iterator> #include <string> #include<cctype> class Solution { public: // 高精 // 此题没有涉及到正负号的问题 string solve(string s, string t) { string res = ""; int n = s.size(); int m = t.size(); // 反转 reverse(s.begin(), s.end()); reverse(t.begin(), t.end()); int i = 0, j = 0; int flag = 0; // 标记是否进位 int r = 0; int ds = 0, dt = 0; while(i < n || j < m){ ds = i == n ? 0 : s[i] - '0'; dt = j == m ? 0 : t[i] - '0'; r = ds + dt + flag; res += (r % 10 + '0'); flag = r / 10; i = i == n ? n : i + 1; j = j == m ? m : j + 1; } if(flag){ res += '1'; } reverse(res.begin(), res.end()); return res; } };