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