class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param s string字符串 第一个整数 * @param t string字符串 第二个整数 * @return string字符串 */
string add_string(string &s1, string& s2)
{
if(s1 == "0") return s2;
int len1 = s1.length() - 1;
int len2 = s2.length() - 1;
int jinwei = 0;
string ans;
while(len1 >= 0 || len2 >= 0 || jinwei > 0)
{
int val1 = len1 >= 0 ? s1[len1] - '0' : 0;
int val2 = len2 >= 0 ? s2[len2] - '0' : 0;
int res = val1 + val2 + jinwei;
jinwei = res / 10;
ans += to_string(res % 10);
len1 --;
len2 --;
}
reverse(ans.begin(), ans.end());
return ans;
}
string solve(string s, string t) {
if(s == "0" || t == "0") return "0";
// write code here
int m = s.size();
int n = t.size();
string ans;
for(int i = n - 1; i >= 0; i -- )
{
string cur;
int jinwei = 0;
for(int j = n - 1; j > i; j -- )
{
cur.push_back('0');
}
int val = t[i] - '0';
for(int j = m - 1; j >= 0; j -- )
{
int x = s[j] - '0';
int pro = x * val + jinwei;
jinwei = pro / 10;
cur += to_string(pro % 10);
}
if(jinwei) cur += to_string(jinwei);
reverse(cur.begin(), cur.end());
ans = add_string(ans, cur);
}
return ans;
}
};

京公网安备 11010502036488号