题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
#include <string> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ string solve(string s, string t) { // write code here // long long a = stoi(s); // long long b = stoi(t); // long long c = a + b; // cout << c; // string ans; // while(c != 0) // { // int x = c % 10; // char y = x + '0'; // ans += y; // c = c / 10; // } // if (ans.empty()) // { // ans = "0"; // } // reverse(ans.begin(), ans.end()); // return ans; if (s.size() == 0) { return t; } if (t.size() == 0) { return s; } int m = s.size(); int n = t.size(); int carry = 0; string ans; int i = m - 1, j = n - 1; while (i >= 0 || j >= 0 || carry > 0) { int sum = carry; if (i >= 0) { sum += s[i] - '0'; i--; } if (j >= 0) { sum += t[j] - '0'; j--; } carry = sum / 10; ans += to_string(sum % 10); } reverse(ans.begin(), ans.end()); return ans; } };