Big Num的具體實現和思路

2021-07-07 08:52:08 字數 1162 閱讀 7492

關於bign模板那些事兒。

由於個人寫演算法的時候基本不用別人寫的庫。所以一般來說,我只用三個標頭檔案。

缺乏了string之後寫big num對於有些人來說就沒那麼簡單了。

一直覺得大數模板在10min之內寫完絕對不是一件很簡單的事兒。大概所有人都會這樣認為吧。

然而其實不一定!

對於一般的大數模板來說,需要做的就是模擬乙個decimal加法的演算法。

members:

sign

lenintarray[300000](開外面)

operator <<:

sign=1 or 0;

for :

output the array;

operator >>:

read into an array of char;

sign=1 or 0;

for :

intarray[i]=(int)chararray[len-i];

operator+:

if (num1 sign^num2 sign)

return num1-num2;

else 

tmp = carry+num1+num2

new num=tmp/10;

carry=tmp%10;

operator-:

bign tmp=0;

if (num1 is neg and num2 is neg)return b-a;

else if (num1 is neg) return b+a;

else if (num2 is neg) return b+a;

//num1 num2 are both pos

else if (num1 < num2 )tmp= num2-num1;sign=0;return;

for (i,g)

clean the zero

return  

clean:

do remrember our big n is reverse!

operator <:

neg or pos?

length comparsion

our big n is stored in the reverse order!

operator =:

easy!

做公文流轉的具體思路

新建公文處理流程 1 建新流程,首先指定流程步驟,未正式啟用的流程可以修改步驟。3 指定每個步驟的簽署人 乙個或多個人 4 將流程儲存在流程資料庫中。資料庫結構如下 流程庫 欄位名稱 型別 key 說明 proc id varchar 6 primary key 流程編號 proc name var...

歸併的具體實現

線性表的兩種表示 順序表示與鏈式表示。一 順序表示。參見 首先,表示出線性表 動態分配順序儲存結構 define list inti size 100 線性表的初始分配量 define listincrement 10 線性表儲存空間的分配增量 避免初始分配量不夠,實現靈活的再分配,且再分配時借助基...

continue的具體實現

先看下面乙個 include int main i include int main i 這兩段 有什麼區別嗎?當然有,區別很大,乙個會永遠迴圈,乙個則不會,要理解continue在這裡的用處先要理解for迴圈,for迴圈的三個句子,第乙個句子,是剛剛進入for迴圈的時候會有的操作,第二個句子是每次...