[各种面试题] 非负大整数加法

来源:互联网 发布:fp growth算法 编辑:程序博客网 时间:2024/06/07 15:07

给定两个字符串表示的非负整数ab,计算它们的和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;}