1、double Get_real() return real;double Get_imag() return imag;friend istream& operator (istream& is, const Complex& C);friend ostream& operator i;C.Set(r,i);return is;ostream&cout.setf(ios:fixed);if(C.real = 0)if(C.imag-0.05 & C.imag0.05)os 0.0;else if(C.imag = 1)ielse if(C.imag = -1)-ielse os setprec
2、ision(1)C.imagelseC.real;C.real 0)+else if(C.imag opc2;switch(op)case +c1+c2endl;break;-c1-c2*c1*c2/c1/c2stringalgorithmclass BigIntegervector num;bool sign;BigInteger(const BigInteger& B) num = B.num; sign = B.sign;BigInteger(int size = 1, bool _sign = true) while(size-) num.push_back(0); sign = _s
3、ign;BigInteger() is, BigInteger& B); os, const BigInteger&bool operator (const BigInteger& B) const;bool operator str;for(int i=0;i!=str.size();i+)B.num.push_back(stri-0); return is; if(B.sign = false) os B) constif(num.size() B.num.size()return true;if(num.size() = B.num.size()=num.size();if(numi B
4、.numi)else if(numi return false;operator if(num.size() if(numi operator =(const BigInteger&if(num = B.num & sign = B.sign)BigInteger BigInteger:operator =(const BigInteger&num = B.num;sign = B.sign;return *this;operator +(const BigInteger&int i, j;int len0 = num.size(), len1 = B.num.size();int len2
5、= max(len0, len1);int t = len2;BigInteger A(len2+1, true); for(i=len0-1, j=len1-1; i=0 & j=0; i-,j-)A.numt- = numi + B.numj; while(i=0) A.numt- = numi-; while(j A.numt- = B.numj-;for(i=len2;ii-) if(A.numi=10) A.numi-1 += A.numi/10; A.numi %= 10; while(!A.num0 & A.num.size()1) A.num.erase(A.num.begin
6、()+0);return A;operator -(const BigInteger&bool sign = true;BigInteger a(*this), b(B);if(a A.numi = a.numi;i-;for(i=len0-1;0;if(A.numi j-)A.numi+j += a.numi * b.numj;for(i=len2-1;if(A.numiA.numi-1 += A.numi/10;A.numi %= 10;operator /(const BigInteger&BigInteger c;BigInteger d(*this);int len0 = num.s
7、ize(), len1 = B.num.size(), lend = len1;int i1, i2, i, j, jj, carry, cf;j=0;for(i1=len1-1;i1len0;+i1)if(lendlen1)d.numlend = numi1+1;c.num.push_back(0); +j;+lend;else if(lend = len1)jj = 1;for(i=0;ielse if(d.numi cf = jj=0;while( d.numjj = 0 & jj len1) cf = 1;else if(lend-jj len1) cf = 0;i2 = 0; cf
8、= 1;for(i=jj;if(d.numi B.numi2)+i2;/elsewhile(cf)i2 = len1-1; cf = 0;for(i=lend-1;=lend-len1;-i)d.numi = d.numi-B.numi2;d.numi = d.numi + 10;carry = 1;-d.numi-1;else carry = 0;-i2;+c.numj; jj=0;while(d.numjj c.num.erase(c.num.begin()+0);j-;BigInteger A(j,true);j; A.numi = c.numi;BigInteger a, b;while(cinab)a+ba-ba*ba/b
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2