#include <algorithm> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ //枚举所有情况,一一处理 string solve(string s, string t) { // write code here int n=s.size(); int m=t.size(); if(n==0) return t; if(m==0) return s; string mystr; int carry=0; while(n && m){ int num1=s[n-1]+t[m-1] - '0'-'0'+carry; int num=num1%10; mystr+=num + '0'; carry=num1/10; n--; m--; } if(n==0 && m==0 &&carry){ int num=carry; mystr+=carry+'0'; } if(n==0 && m!=0){ // 9999 1 int k=m-n; while(k){ int num1=t[k-1] -'0'+carry; int num=num1%10; mystr+=num + '0'; carry=num1/10; k--; } if(carry){ int num=carry; mystr+=carry+'0'; } } if(n!=0 && m==0){ int k=n-m; while(k){ int num1=s[k-1] -'0'+carry; int num=num1%10; mystr+=num + '0'; carry=num1/10; k--; } if(carry){ int num=carry; mystr+=carry+'0'; } } reverse(mystr.begin(),mystr.end()); return mystr; } };