• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

高精度

高精度是因为c的整数类型并不能存特别长的数,所以要用数组存储来模拟四则运算

高精度基本就是模拟的人列竖式时的运算过程

因为有最高位有进位现象,所以要将各位存到数组的第一位

具体存储方式如下

//例如用甲,乙两个字符串读入,用两个矢量来存

向量甲、乙;

int main()

{

int a,b;

CIN a b;

for(int I=a . size()-1;I=0;I-)a . push _ back(a-0 ');

for(int I=b . size()-1;I=0;I-)b . push _ back(b-0 ');

返回0;

}

高精度加法

矢量加法(矢量一,矢量b)

{

if (A.size() B.size())返回添加(B,A);

向量c;//答案数组

int t=0;//用来临时存储运算数据

for(int I=0;I a . size();我)

{

t=A

if(I B . size())t=B

c。push _ back(t % 10);

t/=10;

}

if(t)c . push _ back(t);

返回c;

}

高精度减法

//高精度减法需要手写比较函数

布尔化学机械抛光(矢量一,矢量b)

{

if (A.size()!=B.size())返回a . size()b . size();

for(int I=a . size()-1;I=0;我-)

如果(甲[我]!=B)返回aB

返回真实的

}

//高精度减法

矢量子(矢量一,矢量b)

{

向量c;

int t=0;

for(int I=0;I a . size();我)

{

t=A-t;

if(I B . size())t-=B

c。push _ back((t 10)% 10);

if(t 0)t=1;

否则t=0;

}

while(c . size()1c . back()==0)c . pop _ back();

返回c;

}

高精度乘法(高精度低精度)

向量乘法(向量一,整数b)

{

向量c;

int t=0;

for(int I=0;I a . size()| | t;我)

{

if(I A . size())t=A* b;

c。push _ back(t % 10);

t/=10;

}

while(c . size()1c . back()==0)c . pop _ back();

返回c;

}

高精度除法(高精度低精度)

矢量div(矢量a,int b,int r) //r表示余数

{

向量c;

r=0;

for(int I=a . size()-1;I=0;我-)

{

r=r * 10 A

c。推回(r/b);

r %=b;

}

//因为除数组是反转的,所以要手动反转一遍

reverse(C.begin()、c . end());

while(c . size()1c . back()==0)c . pop _ back();

返回c;

}

Link to comment
Share on other sites