string highadd(string a,string b)
{
int lena=a.size(),lenb=b.size();
int maxlen=max(lena,lenb);
stack<char>h;
for(int i=1,zzz1=0,x=0;i<=maxlen+1;i++)//加一是为了当最后一位进位时,再进一位
{
if(lena-i>=0)
zzz1+=(int)a[lena-i]-(int)'0';
if(lenb-i>=0)
zzz1+=(int)b[lenb-i]-(int)'0';
//加上对应数
zzz1+=x;
//加上进位
h.push((char)((zzz1%10)+(int)'0'));
//push进去
if(zzz1>=10)
x=1;
else
x=0;
//计算进位
zzz1=0;
}
string c;
while(h.top()==0&&h.size()>1)
h.pop();
for(int i=0;i<h.size()&&(!h.empty());i++)
{
c[i]=h.top();
h.pop();
}
return c;
}