簡單的大數模板

2021-08-28 06:48:31 字數 1168 閱讀 4590

簡單的大數模板,包含加減乘除,注意,下面的函式都沒有考慮首位為』-'的情況,所以要根據題目來修改

這裡解釋一下為什麼存入結構的時候要逆著儲存

因為用字串讀入數字的時候,數字的高位對應著字串的低位,而數字的低位對應著字串的高位,所以要倒著給結構體賦值,使其高低位相同。

#include

#include

#include

using

namespace std;

struct bign};

//字元陣列轉換到結構體中

bign change

(char str)

return a;

}//比較大小

intcompare

(bign a,bign b)

return0;

}}//對於兩個物件都是同符號的情況 都小於零則需要輸出負號

bign add

(bign a,bign b)

//如果最後進製不等於0,則再進一位

if(carry!=0)

return c;

}//傳入的應該是a>b

bign sub

(bign a,bign b)

c.d[c.len++

]=a.d[i]

-b.d[i];}

while

(c.len-

1>=

1&&c.d[c.len-1]

==0)return c;

}//高精度乘法 如果有負號 傳入絕對值 最後輸出負號

bign multi

(bign a,

int b)

//如果最後還有進製

while

(carry!=0)

return c;

}//高精度除法,r為餘數

bign divide

(bign a,

int b,

int&r)

}while

(c.len-

1>=

1&&c.d[c.len-1]

==0)return c;

}void

print

(bign a)

}int

main()

模板整理 大數模板

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...