博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高精度运算
阅读量:4982 次
发布时间:2019-06-12

本文共 1705 字,大约阅读时间需要 5 分钟。

View Code
/*==================================================*\| 比较高效的大数| < , <= , + , - , * , / , %(修改/的最后一行可得)\*==================================================*/const int maxn = 1111; //最大长度const int base = 10000; //%04dstruct bint {    int ln, v[maxn];    bint (int r) {        memset(v,0,sizeof(v));  ln=0;        if(r==0) {v[ln++]=0; return;}        for(;r>0;r/=base) v[ln++]=r%base;    }    bint& operator=(const bint& r) {        memcpy(this,&r,(r.ln+1)*sizeof(int));        return *this;    }    void out() {        printf("%d",v[ln-1]);for(int i=ln-2;i>=0;i--) printf("%04d",v[i]);printf("\n");    }};bool operator<(const bint&a, const bint&b) {    int i;    if(a.ln!=b.ln) return a.ln
=0 && a.v[i]==b.v[i];i--); return i<0?0:a.v[i]
= 0; i--) { if(x.v[i]!=y.v[i]) return false; } return true;} bint operator+(const bint&a, const bint&b) { bint res(1); int i, cy=0; for(i=0;i
0;i++) { if(i
0 && res.v[res.ln-1]==0) res.ln--; return res;}bint operator*(const bint&a, const bint&b) { bint res(0); if(0==b.ln) return res; int i, j, cy; for(i=0; i
0; j++, cy/=base) { if(j
= res.ln) res.v[res.ln++]=cy%base; else res.v[i+j]=cy%base; } } return res;}bint operator/(const bint&a,int b) { // ! b != 0 bint res(0), zero(0); int i, mod=0; res.ln = a.ln; for(i=a.ln-1; i>=0 ; i--) { mod=mod*base+a.v[i]; res.v[i]=mod/b; mod%=b; } while(res.ln>0 && res.v[res.ln-1]==0) res.ln--; if(res.ln==0) res=zero; return res; // return mod相当于对b取余}

 

转载于:https://www.cnblogs.com/zhang1107/archive/2013/04/23/3038540.html

你可能感兴趣的文章
(转)面向对象的三大基石(封装,继承和复合,多态)
查看>>
jquery $.ajax $.get $.post的区别?
查看>>
python中运行pip出现Fatal error in launcher错误
查看>>
2017北京国庆刷题Day7 afternoon
查看>>
bzoj千题计划108:bzoj1018: [SHOI2008]堵塞的交通traffic
查看>>
C++集成设计环境——Code::Blocks安装过程
查看>>
Maven小记
查看>>
一定不要在头文件中using namespace XXX
查看>>
运行百度语音识别官方iOS demo报错: load offline engine failed: 4001
查看>>
THREE.OrbitControls参数控制
查看>>
iOS开发--XMPPFramework--好友列表(五)
查看>>
非对称加密与证书(上篇)
查看>>
面向对象基础
查看>>
poj 1061 青蛙的约会
查看>>
PAT_1008(中文)_数组元素循环右移问题
查看>>
数据库事物隔离级别通俗理解
查看>>
PHP的基本知识点
查看>>
企业IT管理员IE11升级指南【17】—— F12 开发者工具
查看>>
pager-taglib2.0中文传参乱码问题
查看>>
人生不可破的28个天规
查看>>