加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数类简单模板

发布时间:2020-12-14 02:28:48 所属栏目:大数据 来源:网络整理
导读:#includecstdio#includecmath#includeiostream#includealgorithm#includecstring#includestring#includecctype#includecassert#includecmath#includealgorithm#includecctype#includemap#includevector#includestack#includequeue#includeset#includecstdlib
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cctype>
#include<cassert>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<map>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<cstdlib>
using namespace std;
const int maxn=1000;
struct bign
{
    int len,s[maxn];
    bign()
    {
        memset(s,sizeof(s));
        len=1;
    }
    bign operator = (const char *num)
    {
        len=strlen(num);
        for(int i=0;i<len;i++)
            s[i]=num[len-i-1]-'0';
        return *this;
    }
    bign(int num)
    {
        *this=num;
    }
    bign(const char *num)
    {
        *this=num;
    }
    string str() const
    {
        string res="";
        for(int i=0;i<len;i++)
        {
            res=(char)(s[i]+'0')+res;
        }
        if(res=="")
            res="0";
        return res;
    }
    bign operator +(const bign &b) const
    {
        bign c;
        c.len=0;
        for(int i=0,g=0;g||i<max(len,b.len);i++)
        {
            int x=g;
            if(i<len) x+=s[i];
            if(i<b.len) x+=b.s[i];
            c.s[c.len++]=x%10;
            g=x/10;
        }
        return c;
    }
    bign operator +=(const bign &b)
    {
        *this=*this +b;
        return *this;
    }
    bool operator <(const bign &b) const
    {
        if(len!=b.len)
            return len<b.len;
        for(int i=len-1;i>=0;i--)
            if(s[i]!=b.s[i]) return s[i]<b.s[i];
        return false;
    }
    bool operator > (const bign &b) const
    {
        return b<*this;
    }
    bool operator <= (const bign &b) const
    {
        return !(b<*this);
    }
    bool operator >=(const bign &b) const
    {
        return !(*this<b);
    }
    bool operator !=(const bign &b) const
    {
        return b<*this||*this<b;
    }
    bool operator ==(const bign &b) const
    {
        return !(b<*this)&&!(*this<b);
    }
};
istream &operator >> (istream &in,bign &x)
{
    string s;
    in>>s;
    x=s.c_str();
    return in;
}
ostream &operator << (ostream &out,const bign &x)
{
    out<<x.str();
    return out;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读