高精度演算法模板

2021-10-23 17:07:25 字數 1239 閱讀 7730

簡單模擬就可以實現高精度加、減、乘、除(高精度除以低精度)

/*

* template:高精度演算法

* date:2020/08/22

*/#include

#include

using

namespace std;

const

int maxlen=

1001

;typedef

struct

hugeint;

bool negative;

//大數輸入

hugeint scanhugeint()

return hugeint;

}//大數加法

hugeint plushugeint

(hugeint a,hugeint b)

return res;

}//大數減法

hugeint minushugeint

(hugeint a,hugeint b)

else

if(a.len==b.len)}}

if(negative)

res.len=a.len;

for(i=

1; i<=res.len; i++

) res.num[i]

=a.num[i]

-b.num[i];}

while

(res.num[res.len]==0

&&res.len!=

1) res.len--

;return res;

}//高精度乘法

hugeint mutiplyhugeint

(hugeint a,hugeint b)

res.num[i+b.len]

=x;}

while

(res.num[res.len]==0

&&res.len!=

1) res.len--

;return res;

}//高精度除法(高精度除以低精度)

hugeint dividesmallint

(hugeint a,

int b)

while

(res.num[res.len]==0

&&res.len!=

1) res.len--

;return res;

}int

main()

演算法 高精度(模板)

出自南昌理工學院acm集訓隊 我們用的最基礎的運算方法有四種,加 減 乘 除。在進行進行加減乘除的運算中較小的資料時,我們的編譯器是能夠充分且快速的進行運算的,但是如果要運算的資料是很大很大,超過了int定義的資料範圍的時候怎麼辦呢?這時候我們就要採用另一種的方法 高精度,來進行運算。在這裡我就介紹...

演算法模板 高精度加法模板

高精度,字面意思理解,精度高,位數很多,乙個數的位數可能是1e3甚至更高 應用 手動模擬大整數的加法 兩個位數很大,位數可能達到1e3甚至更高的數加法運算直接儲存無法儲存,常規使用字串或者陣列來儲存時間複雜度是o max m,n 但是空間複雜度是2 m n m和n分別是兩個數的位數大小 模擬兩個數進...

個人模板 高精度演算法

一 求兩個高精度正數的和差積 1 include2 include3 include4 include5 using namespace std 6const int maxn 1000 7 char s1 maxn s2 maxn 8int ed1,ed2,n1,n2 9int num1 maxn...