给定两个字符串表示的非负整数a和b,计算它们的和a+b,结果也用字符串表示。
最近才学到写这种简洁的while,还比较喜欢。
//返回a+b的结果 string add(const string& a, const string& b) { if ( a.empty() || b.empty() ) return a.empty()?b:a; string ret; int carry=0; int p1=a.size()-1,p2=b.size()-1; while(p1>=0||p2>=0||carry) { int sum=carry; if ( p1>=0) sum+=a[p1--]-'0'; if ( p2>=0 ) sum+=b[p2--]-'0'; ret.push_back(sum%10+'0'); carry=sum/10; } reverse(ret.begin(),ret.end()); return ret; }