刘汝佳大数模板(只含加法)
来源:互联网 发布:演员吻戏是真的吗 知乎 编辑:程序博客网 时间:2024/05/01 18:39
#include <bits/stdc++.h>using namespace std;struct BigInteger{ static const int BASE = 100000000; static const int WIDTH = 8; vector<int> s; BigInteger(long long num=0) {*this = num;} BigInteger operator =(long long num){ s.clear(); do{ s.push_back(num % BASE); num /= BASE; }while(num > 0); return *this; } BigInteger operator = (const string & str){ s.clear(); int x, len = (str.length()-1)/WIDTH + 1; for(int i=0;i<len;i++){ int end = str.length()-i*WIDTH; int start =max (0,end - WIDTH); sscanf(str.substr(start,end-start).c_str(),"%d",&x); s.push_back(x); } return *this; } BigInteger operator + (const BigInteger& b) const { BigInteger c; c.s.clear(); for(int i=0,g=0;;i++){ if(g==0&&i>=s.size()&&i>=b.s.size()) break; 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; }};ostream& operator << (ostream &out,const BigInteger& x){ out<<x.s.back(); for(int i=x.s.size()-2;i>=0;i--){ char buf[20]; sprintf(buf,"%08d",x.s[i]); for(int j=0;j<strlen(buf);j++) out<<buf[j]; } return out;}istream& operator >> (istream &in,BigInteger& x) { string s; if(!(in>>s)) return in; x=s; return in;}int main() {BigInteger x,y,p;cin>>x>>y;p=x+y;cout<<p<<endl;return 0;}
0 0
- 刘汝佳大数模板(只含加法)
- 大数加法 (模板)
- hdu-1715 (大数加法模板)
- 大数与小数模板(乘法,加法)
- 大数加法模板
- 大数加法模板(c++)
- 大数加法模板
- 大菲波数 大数加法模板
- 大数加法模板
- 51nod 1005 大数加法(大数模板)
- Integer Inquiry 大数加法模板
- 大数加法和大数乘法模板函数
- c++实现大数加法(含负数)
- Edge Case(UVALive 6270)(大数加法)(模板)
- 大数的阶乘(乘法)及加法(详细模板)
- 个人C++模板之大数系列(加法)
- 只定义了加法的大数类
- HDU 1297 Children’s Queue(含整型大数模板)
- WiFi 初学
- 关于Nginx的一些优化(突破十万并发)
- ios学习笔记2
- CPU 与 GPU 之间数据转换 cudaMemcpy
- Android图片系列(2)-------关于图片的显示的属性scaleType
- 刘汝佳大数模板(只含加法)
- WiFi 学习集合
- 对比两个数组,如何得出s2中包含s1的数以及在s2中出现的个数,放入到二维数组s3中。
- 读LDK之进程管理
- 快速排序的枢纽元选取策略
- Android网络编程
- HolderView 与 ViewHolder 优化App性能
- 折半查询与反转数组元素
- iOS UIApplication