您的位置:首页 > 其它

模板总结——高精度加法

2018-03-27 17:34 134 查看
struct high
{
ll p[500],len;
high()
{
memset(p,0,sizeof(p));
len=0;
}
high(string s)
{
len=s.size();
reverse(s.begin(),s.end());
for(int i=0;i<len;i++)
p[i]=s[i]-'0';
}
high operator + (const high& o)const
{
high ans;
ans.len=max(len,o.len);
for(int i=0;i<ans.len;i++)
{
ans.p[i]+=p[i]+o.p[i];
ans.p[i+1]=ans.p[i]/10;
ans.p[i]%=10;
}
if(ans.p[ans.len]>0) ans.len++;
return ans;
}
high operator+=(const high& o)
{
*this=*this+o;
return *this;
}
void out()
{
if(len==0) putchar('0');
else
{
for(ll i=len-1;i>=0;i--)
printf("%d",p[i]);
}
putchar(10);
}
}d[maxn];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: