存个代码

struct BigInterger {
static const int BASE = 1e8;
static const int WIDTH = ;
vector<int> s;
BigInterger(long long num = ) { *this = num; }
BigInterger operator =(long long num) {
s.clear();
do {
s.push_back(num%BASE);
num /= BASE;
} while (num > );//num==0
return *this;
}
BigInterger operator =(const string& str) {
s.clear();
int x, len = (str.length() - ) / WIDTH + ;//len==width
for (int i = ; i < len; i++) {
int end = str.length() - i*WIDTH;
int start = max(, end - WIDTH);
sscanf(str.substr(start, end - start).c_str(), "%d", &x);
s.push_back(x);
}
return *this;
} BigInterger operator +(const BigInterger& b)const {
BigInterger c;
c.s.clear();
for (int i = , g = ;; i++) {
if (g == && i >= max(s.size(), b.s.size()))break;//此处bug
int x = g;
if (i < s.size())x += s[i];
if (i < b.s.size()) x += b.s[i];
c.s.push_back(x%BASE);
g = x / BASE;
}
return c;
}
BigInterger operator +=(const BigInterger& b) {
*this = *this + b; return *this;
} bool operator<(const BigInterger& b)const {
if (s.size() != b.s.size()) return s.size() < b.s.size();
for (int i = s.size() - ; i >= ; i--) {
if (s[i] != b.s[i]) return s[i] < b.s[i];//Width 个数字一起比
}
return false;//==
}
bool operator>(const BigInterger &b)const { return b < *this; }
bool operator<=(const BigInterger &b)const { return !(b < *this); }
bool operator>=(const BigInterger &b)const { return !(*this < b); }
bool operator!=(const BigInterger &b)const { return b < *this || *this<b; }
bool operator==(const BigInterger &b)const { return!(b < *this) && !(*this<b); }
};
ostream& operator <<(ostream &out, const BigInterger& x) {
out << x.s.back();
for (int i = x.s.size() - ; i >= ; i--) {
char buf[];
sprintf(buf, "%08d", x.s[i]);
for (int j = ; j < strlen(buf); j++)cout << buf[j];
}
return out;
}
istream&operator>>(istream &in, BigInterger&x) {
string s;
if (!(in >> s))return in;
x = s;
return in;
}
 

最新文章

  1. 【转】Linux下如何清除系统日志
  2. ios auto layout demystified (二)
  3. 德州扑克AI实现 TexasHoldem Poker
  4. shell script入门
  5. laravel步骤 (我是新手)
  6. C#实现自动切割图片
  7. HDU 4107 线段树
  8. OMCS ——卓尔不群的网络语音视频框架
  9. Oracle ASM数据库故障数据恢复过程
  10. iOS根据域名获取ip地址
  11. ORACLE not available
  12. jcifs windows 域账户单点登录(转)
  13. DEBUG经历
  14. 深入理解 Object.defineProperty 及实现数据双向绑定
  15. ZOJ 4060 - Flippy Sequence - [思维题][2018 ACM-ICPC Asia Qingdao Regional Problem C]
  16. slick插件一些配置
  17. 谈谈我们对userAgent的看法,为什么爬虫中需要userAgent?
  18. 【PAT】B1036 跟奥巴马一起编程(15)(15 分
  19. maven----&gt;配置,指令,插件,使用
  20. shell脚本实例-shell 分析系统瓶颈脚本

热门文章

  1. actor mysql 持久化之 specified actor
  2. iOS 图片剪切和压缩的几个方法
  3. eclipse+pydev 怎么导入已有的python项目
  4. 【RF库XML测试】测试的XML文件说明
  5. Create maintenance backup plan in SQL Server 2008 R2 using the wizard
  6. LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  7. 脚本学习 game.sh
  8. shell 获取脚本的绝对路径
  9. 【python系列】python初识
  10. [原]linux下将网卡设置为混杂模式