關於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迴圈的時候會有的操作,第二個句子是每次...