直接嵌入**中用即可。
/*
* 完全大數模板
* 輸出cin>>a
* 輸出a.print();
* 注意這個輸入不能自動去掉前導0的,可以先讀入到char陣列,去掉前導0,再用建構函式。
*/#define maxn 9999
#define maxsize 1010
#define dlen 4
class
bignum
bignum
(const
int)
;//將乙個int型別的變數轉化成大數
bignum
(const
char*)
;//將乙個字串型別的變數轉化為大數
bignum
(const bignum &);
//拷貝建構函式
bignum &
operator=(
const bignum &);
//過載賦值運算子,大數之間進行賦值運算
friend istream&
operator
>>
(istream&
,bignum&);
//過載輸入運算子
friend ostream&
operator
<<
(ostream&
,bignum&);
//過載輸出運算子
bignum operator+(
const bignum &
)const
;//過載加法運算子,兩個大數之間的相加運算
bignum operator-(
const bignum &
)const
;//過載減法運算子,兩個大數之間的相減運算
bignum operator*(
const bignum &
)const
;//過載乘法運算子,兩個大數之間的相乘運算
bignum operator/(
const
int&
)const
;//過載除法運算子,大數對乙個整數進行相除運算
bignum operator^(
const
int&
)const
;//大數的n次方運算
intoperator%(
const
int&
)const
;//大數對乙個int型別的變數進行取模運算
bool
operator
>
(const bignum &t)
const
;//大數和另乙個大數的大小比較
bool
operator
>
(const
int&t)
const
;//大數和乙個int型別的變數的大小比較
void
print()
;//輸出大數};
bignum::
bignum
(const
int b)
//將乙個int型別的變數轉化為大數
a[len++
]=d;
}bignum::
bignum
(const
char
*s)//將乙個字串型別的變數轉化為大數
}bignum::
bignum
(const bignum &t)
:len
(t.len)
//拷貝建構函式
bignum & bignum::
operator=(
const bignum &n)
//過載賦值運算子,大數之間賦值運算
istream&
operator
>>
(istream &in,bignum &b)
b.a[count]
=sum;
count++;}
b.len=count++
;return in;
}ostream&
operator
<<
(ostream& out,bignum& b)
//過載輸出運算子
return out;
}bignum bignum::
operator+(
const bignum &t)
const
//兩個大數之間的相加運算}if
(t.a[big]!=0
) t.len=big+1;
else t.len=big;
return t;
}bignum bignum::
operator-(
const bignum &t)
const
//兩個大數之間的相減運算
else
big=t1.len;
for(i=
0; i)else t1.a[i]
-=t2.a[i];}
t1.len=big;
while
(t1.a[t1.len-1]
==0&& t1.len>1)
if(flag)
t1.a[big-1]
=0-t1.a[big-1]
;return t1;
}bignum bignum::
operator*(
const bignum &t)
const
//兩個大數之間的相乘
else}if
(up!=0)
ret.a[i+j]
=up;
} ret.len=i+j;
while
(ret.a[ret.len-1]
==0&& ret.len>
1)ret.len--
;return ret;
}bignum bignum::
operator/(
const
int&b)
const
//大數對乙個整數進行相除運算
ret.len=len;
while
(ret.a[ret.len-1]
==0&& ret.len>1)
ret.len--
;return ret;
}int bignum::
operator%(
const
int&b)
const
//大數對乙個 int型別的變數進行取模
bignum bignum::
operator^(
const
int&n)
const
//大數的n次方運算
return ret;
}bool bignum::
operator
>
(const bignum &t)
const
//大數和另乙個大數的大小比較
else
return
false;}
bool bignum::
operator
>
(const
int&t)
const
//大數和乙個int型別的變數的大小比較
void bignum::
print()
//輸出大數
函式模版 特化 模版指標
函式特化在下面做了大量的補充 類模版 函式模版與類模版的乙個不同點是 類模版如 template class a 那麼 a或 a是乙個類 即a是模版,a後面帶著則是乙個類 函式模版如 template t compare const t a,const t b 那麼compare生成compare ...
函式模版和模版函式,類模版和模版類的區別
什麼是函式模板和類模板 函式模板是一種抽象函式定義,它代表一類同構函式。通過使用者提供的具體引數,c 編譯器在編譯時刻能夠將函式模板例項化,根據同乙個模板建立出不同的具體函式,這些函式之間的不同之處主要在於函式內部一些資料型別的不同,而由模板建立的函式的使用方法與一般函式的使用方法相同。函式模板的定...
大整數模版
include include include include includeusing namespace std define maxn 9999 define maxsize 10 define dlen 4 class bignum 建構函式 bignum const int 將乙個int型...