题解 | #大数加法#
大数加法
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;
}
};
腾讯成长空间 5958人发布
查看10道真题和解析