bignum 大數模板

2022-03-12 23:21:44 字數 1798 閱讀 3777

今天無意間看到乙個很好的大數模板,能算加、減、乘、除等基本運算,但操作減法的時候只能大數減小數,也不支援負數,如果是兩個負數的話去掉符號相加之後再取反就可以了,一正一負比較絕對值大小,然後相減。我借用了一下:(作過少許**上的精簡)

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 2003

;struct

bign

bign(

int num)

bign(

const

char *num)

bign

operator = (const

intnum)

bign

operator = (const

char *num)

bign

operator + (const bign &b) const

return

c; }

bign

operator += (const bign &b)

void

clean()

bign

operator * (const bign &b) const

c.clean();

return

c; }

bign

operator *= (const bign &b)

bign

operator -(const bign &b) const

c.s[c.len++] =x;

}c.clean();

return

c; }

bign

operator -= (const bign &b)

bign

operator / (const bign &b) const

}c.len =len;

c.clean();

return

c; }

bign

operator /= (const bign &b)

bign

operator % (const bign &b) const

bign

operator %= (const bign &b)

bool

operator

< (const bign &b) const

bool

operator > (const bign &b) const

bool

operator == (const bign &b) const

bool

operator != (const bign &b) const

bool

operator

<= (const bign &b) const

bool

operator >= (const bign &b) const

string str() const

};istream& operator >> (istream &in, bign &x)

ostream& operator

<< (ostream &out, const bign &x)

intmain()

return0;

}

在此感謝原部落格的模板提供: bign類c++高精度模板

模板整理 大數模板

include include include include include includeusing namespace std define maxn 9999 define maxsize 1000 define dlen 4 class bignum 建構函式 bignum const i...

大數模板1

分別使用c 中的運算子過載的方法來實現大數之間的數 算,包括加法 減法 乘法 除法 n次方 取模 大小比較 賦值以及輸入流 輸出流的過載。並且使用這個大數模板,順利ac了hdoj上的1134這個題目的catalan數計數問題。大數模板的 如下 include include include incl...

大數模板1

include include include include include include using namespace std define maxn 9999 define maxsize 10 define dlen 4 class bignum 建構函式 bignum const in...