码迷,mamicode.com
首页 > 其他好文 > 详细

高精度模板

时间:2021-03-16 11:45:03      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:==   高精度   精度   out   i++   amp   wap   code   pre   

class BigInt{
public:    
    vector<int> a;
    BigInt operator+(const BigInt& b)
    {
        BigInt r;
        int s=max(a.size(),b.a.size());
        for(int i=0;i<s;i++)
        {
            r.a.push_back(0);
            if(i<a.size())
            {
                r.a[i]+=a[i];
            }
            if(i<b.a.size())
            {
                r.a[i]+=b.a[i];
            }
        }
        int la=0;
        for(int i=0;i<s;i++)
        {
            r.a[i]+=la;
            la=0;
            if(r.a[i]>=10)
            {
                la+=r.a[i]/10;
                r.a[i]%=10;
                if(i+2>s)
                {
                    s=i+2;
                    r.a.push_back(0);
                }
            }
        }
        return r;
    }
    friend ostream &operator<<(ostream &output, const BigInt &x)
    { 
        for(int i=x.a.size()-1;i>=0;i--)
        {
            output<<x.a[i];
        }
        return output;
    }
    friend istream &operator>>(istream  &input, BigInt &x)
    { 
         string g;
         input>>g;
         vector<int>().swap(x.a);
        for(int i=g.size()-1;i>=0;i--)
        {
            x.a.push_back(g[i]-0);
        }
        if(x.a.size()==0)
        {
            x.a.push_back(0);
        }
         return input; 
    }
};

 

高精度模板

标签:==   高精度   精度   out   i++   amp   wap   code   pre   

原文地址:https://www.cnblogs.com/Profish/p/14531406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!