高精度想必大家再熟悉不過了,這裡我就不再贅述它的原理(模擬),但大部分同學的高精度用得都太零散了,蒟蒻我就將常用的運算符號用struct封裝一下,請大佬們笑納。
code:
#includeusing namespace std;
#define rep(i,f,t) for(int i=(f),i##_end_=(t);i<=i##_end_;++i)
#define srep(i,f,t) for(int i=(f),i##_end_=(t);i=i##_end_;--i)
#define ll long long
templateinline bool chkmin(t&x,t y)
templateinline bool chkmax(t&x,t y)
#define l 1000
#define p 10000
struct big
void rd() }
void pr() }
big operator+(const big a)const
if(b.num[b.len])b.len++;
return b; }
big operator+(int a)
if(b.num[b.len])b.len++;
return b; }
big operator*(const big &a)const
} while(b.num[b.len])b.len++;
return b; }
big operator-(const big &a)const
while(b.len>1 and !b.num[b.len-1])b.len--;
return b; }
bool operator<(const big &a)const
bool operator==(const big &a)const
bool operator>=(const big &a)const
bool operator<=(const big &a)const{
if(len!=a.len) return len小結:
高精度的用處還是很大的吧…
高精度階乘(遞迴版)
這是遞迴版的高精度階乘 include include using namespace std int a 5000000000 int sum 0,n,len 1 void e j len 1 while c j len j if sum n e int main a 1 1 e return 0...
高精度除法(高精度除以高精度)
先貼乙個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...
高精度除高精度
演算法流程 第一步,讀入被除數 a 和 除數 b,判斷是否 a b,是則輸出 0 並結束演算法,否則令 answer 0 第二步,令餘數 remainder 0,令 i 從被除數最高位的下標開始 第三步,令 remainder remainder 10 a i 令 c 9 第四步,判斷是否 b c ...