STL應用 大整數類

2021-10-09 05:21:31 字數 1717 閱讀 9316

結構體biginteger可用於儲存高精度非負整數

struct biginteger

//建構函式

biginteger operator=(

long

long num)

while

(num>0)

;return

*this;}

biginteger operator=(

const string& str)

//賦值運算子

return

*this;}

};

s用來儲存大整數的各個數字。例如,要表示1234,則s=

return out;

}istream&

operator

>>

(istream &in,biginteger& x)

x=s;

return in;

}這樣,可以用cin>>x和cout《高精度類非常常見(定義在結構體內部)

biginteger operator+(

const biginteger& b)

const

int x=g;

if(isize()

)if(isize()

) c.s.

push_back

(x%base)

; g=x/base;

}return c;

}

為了讓使用更加簡單,還可以重定義"+="運算子(定義在結構體內部):

biginteger operator+=

(const biginteger& b)

下面實現比較操作(定義在結構體內部):

bool

operator

<

(const biginteger& b)

const

for(

int i=s.

size()

-1;i>=

0;i--)}

return

false

;//相等

}

一開始就比較兩個biginteger的位數,不相等則直接返回,否則直接從後往前比較(因為低位在vector前面)。前提是兩個數都沒有前導零,否則會出錯。

只需定義「小於」這一符號,即可用它定義其他所有比較運算子(對於biginteger這個例子,「」可直接定義為sb.s,不過不具一般性。):

bool

operator

>

(const biginteger& b)

const

bool

operator

<=

(const biginteger& b)

const

bool

operator

>=

(const biginteger& b)

const

bool

operator!=(

const biginteger& b)

const

bool

operator==(

const biginteger& b)

const

大整數類的應用 bjfu1005

寫了一上午,哦哦哦!通過字串進行n的階乘的運算,從0位置開始,若有進製,將答案長度加上1。並且對後面的按照進製進行賦值。include include include chara 100000 voidjiecheng intn while cin printf count is d n count...

大整數類 模板

bigint v2.0 by kunsoft include include include include include include include include include using namespace std typedef long long llt class bigint ...

C 大整數類

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!include include include include using namespace std define maxn 9999 define maxsize 10 define dlen 4 class bignum 建構函式 bignu...